private static void DeleteExpiredLoggerHistory(RegisteredLogger registeredLogger) { try { if (registeredLogger.DaysOfServiceHistoryToMaintain >= 0) { registeredLogger.Logger.DeleteServiceHistory(registeredLogger.DaysOfServiceHistoryToMaintain); } } catch (Exception ex) { WriteExceptionToLog(ex); } foreach (var registeredIntegration in registeredIntegrations.Values) { try { DeleteExpiredIntegrationHistory(registeredLogger, registeredIntegration); } catch (Exception ex) { WriteExceptionToLog(ex); } } }
public static void RegisterLogger(ISyncEngineLogger logger, LoggingLevel maxLoggingLevel, int daysOfServiceHistoryToMaintain) { if (logger == null) { throw new Exception("Logger can not be null."); } var loggingLevel = maxLoggingLevel == LoggingLevel.InheritFromParent ? ServiceLoggingLevel : maxLoggingLevel; var loggerToRegister = new RegisteredLogger(logger, loggingLevel, daysOfServiceHistoryToMaintain); if (!registeredLoggers.Contains(loggerToRegister)) { registeredLoggers.Add(loggerToRegister); } DeleteExpiredLoggerHistory(loggerToRegister); }
private static void DeleteExpiredIntegrationHistory(RegisteredLogger registeredLogger, RegisteredIntegration registeredIntegration) { try { if (registeredLogger.Logger is DatabaseLogger && registeredIntegration.Integration.DaysOfDatabaseLoggingHistory >= 0) { registeredLogger.Logger.DeleteIntegrationHistory(registeredIntegration.Integration.Id, registeredIntegration.Integration.DaysOfDatabaseLoggingHistory); } else if (registeredLogger.Logger is TextFileLogger && registeredIntegration.Integration.DaysOfFileLoggingHistory >= 0) { registeredLogger.Logger.DeleteIntegrationHistory(registeredIntegration.Integration.Id, registeredIntegration.Integration.DaysOfFileLoggingHistory); } else { throw new NotImplementedException(string.Format("Logger of type '{0}' is not implemented.", registeredLogger.Logger.GetType().Name)); } } catch (Exception ex) { WriteExceptionToLog(ex); } }