/// <summary> /// Reconfigure database logger service /// </summary> /// <param name="options">Database logger configuration</param> private void ReloadOptions(DatabaseLoggerOptions options) { _logger.LogInformation($"{nameof(DatabaseLoggerService)} is reloading its configuration, interval changing to {options.SyncInterval} seconds. [{options}]"); _options = options; _timer?.Change(TimeSpan.Zero, TimeSpan.FromSeconds(_options.SyncInterval)); }
/// <summary> /// Constructor for manual provider initialization /// </summary> /// <param name="logCollector">Logging collector object</param> /// <param name="options">Logger configuration</param> /// <param name="filter">Log sources filter function</param> public DatabaseLoggerProvider(DatabaseLoggerCollector logCollector, DatabaseLoggerOptions options, Func <string, LogLevel, bool>?filter = null) { _filter = filter; _logCollector = logCollector; _options = options; }
private void ReloadOptions(DatabaseLoggerOptions options) { _options = options; foreach (var logger in _loggers.Values) { logger.LoadOptions(options); } }
/// <summary> /// Constructor for automatic provider initialization /// </summary> /// <param name="logCollector">Log collector object</param> /// <param name="optionsMonitor">Configuration monitor object</param> public DatabaseLoggerProvider(DatabaseLoggerCollector logCollector, IOptionsMonitor <DatabaseLoggerOptions> optionsMonitor) { _filter = (s, l) => true; _logCollector = logCollector; _options = optionsMonitor.CurrentValue; _optionsReloadToken = optionsMonitor.OnChange(ReloadOptions); }
/// <summary> /// Constructor /// </summary> /// <param name="logger">ILogger for logging service events</param> /// <param name="optionsMonitor">Database logger configuration monitor</param> /// <param name="serviceProvider">Dependency injection service provider</param> public DatabaseLoggerService(ILogger <DatabaseLoggerService> logger, IOptionsMonitor <DatabaseLoggerOptions> optionsMonitor, IServiceProvider serviceProvider) { _logger = logger; _options = optionsMonitor.CurrentValue; _serviceProvider = serviceProvider; _optionsReloadToken = optionsMonitor.OnChange(ReloadOptions); }