/// <summary> /// Adds a memory logger with settings object. /// </summary> public static ILoggerFactory AddMemory( this ILoggerFactory factory, IMemoryLoggerSettings settings) { factory.AddProvider(new MemoryLoggerProvider(settings)); return(factory); }
public MemoryLoggerProvider(Func <string, LogLevel, bool> filter, int maxLogCount = 200) { _filter = filter; _settings = new MemoryLoggerSettings() { MaxLogCount = maxLogCount }; }
public MemoryLoggerProvider(Func<string, LogLevel, bool> filter, int maxLogCount = 200) { _filter = filter; _settings = new MemoryLoggerSettings() { MaxLogCount = maxLogCount }; }
/// <summary> /// /// </summary> /// <param name="filter"></param> /// <param name="maxLogCount"></param> /// <param name="logLineFormatter"></param> public MemoryLoggerProvider(Func <string, LogLevel, bool> filter, int maxLogCount = 200, Func <LogLevel, string, string, Exception, string> logLineFormatter = null) { this.logLineFormatter = logLineFormatter; _filter = filter; _settings = new MemoryLoggerSettings() { MaxLogCount = maxLogCount }; }
/// <summary> /// Coustructor with settings object /// </summary> /// <param name="settings">settings object</param> public MemoryLoggerProvider(IMemoryLoggerSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } _settings = settings; if (_settings.ChangeToken != null) { _settings.ChangeToken.RegisterChangeCallback(OnConfigurationReload, null); } }
public MemoryLoggerProvider(IMemoryLoggerSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } _settings = settings; if (_settings.ChangeToken != null) { _settings.ChangeToken.RegisterChangeCallback(OnConfigurationReload, null); } }
private void OnConfigurationReload(object state) { // The settings object needs to change here, because the old one is probably holding on // to an old change token. _settings = _settings.Reload(); foreach (var logger in _loggers.Values) { logger.Filter = GetFilter(logger.Name, _settings); } // The token will change each time it reloads, so we need to register again. if (_settings?.ChangeToken != null) { _settings.ChangeToken.RegisterChangeCallback(OnConfigurationReload, null); } }
private Func <string, LogLevel, bool> GetFilter(string name, IMemoryLoggerSettings settings) { if (_filter != null) { return(_filter); } if (settings != null) { foreach (var prefix in GetKeyPrefixes(name)) { LogLevel level; if (settings.TryGetSwitch(prefix, out level)) { return((n, l) => l >= level); } } } return((n, l) => false); }
private Func<string, LogLevel, bool> GetFilter(string name, IMemoryLoggerSettings settings) { if (_filter != null) { return _filter; } if (settings != null) { foreach (var prefix in GetKeyPrefixes(name)) { LogLevel level; if (settings.TryGetSwitch(prefix, out level)) { return (n, l) => l >= level; } } } return (n, l) => false; }
/// <summary> /// Adds a memory logger with settings object. /// </summary> public static ILoggerFactory AddMemory( this ILoggerFactory factory, IMemoryLoggerSettings settings) { factory.AddProvider(new MemoryLoggerProvider(settings)); return factory; }