private void UpdateOptions(BatchingLoggerOptions options) { var oldIsEnabled = IsEnabled; IsEnabled = options.IsEnabled; _includeScopes = options.IncludeScopes; if (oldIsEnabled != IsEnabled) { if (IsEnabled) { Start(); } else { Stop(); } } }
protected BatchingLoggerProvider(IOptionsMonitor <BatchingLoggerOptions> options) { // NOTE: Only IsEnabled and IncludeScopes are monitored _loggerOptions = options.CurrentValue; if (_loggerOptions.BatchSize <= 0) { throw new ArgumentOutOfRangeException(nameof(_loggerOptions.BatchSize), $"{nameof(_loggerOptions.BatchSize)} must be a positive number."); } if (_loggerOptions.FlushPeriod <= TimeSpan.Zero) { throw new ArgumentOutOfRangeException(nameof(_loggerOptions.FlushPeriod), $"{nameof(_loggerOptions.FlushPeriod)} must be longer than zero."); } //_filter = _loggerOptions.LogLevel; _interval = _loggerOptions.FlushPeriod; _batchSize = _loggerOptions.BatchSize; _queueSize = _loggerOptions.BackgroundQueueSize; _optionsChangeToken = options.OnChange(UpdateOptions); UpdateOptions(options.CurrentValue); }