/* * public MongoDBLoggerProvider(Func<string, LogLevel, bool> filter, bool includeScopes) * { * if (filter == null) * { * throw new ArgumentNullException(nameof(filter)); * } * * _filter = filter; * _settings = new MongoDBLoggerSettings() * { * IncludeScopes = includeScopes, * }; * } */ public MongoDBLoggerProvider(IMongoDBLoggerSettings 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) { _settings = _settings.Reload(); foreach (var logger in _loggers.Values) { logger.Filter = GetFilter(logger.Name, _settings); logger.IncludeScopes = _settings.IncludeScopes; } if (_settings?.ChangeToken != null) { _settings.ChangeToken.RegisterChangeCallback(OnConfigurationReload, null); } }
public MongoDBLogger(string name, Func <string, LogLevel, bool> filter, IMongoDBLoggerSettings settings) { if (name == null) { throw new ArgumentNullException(nameof(name)); } Name = name; Filter = filter ?? ((category, logLevel) => true); IncludeScopes = settings.IncludeScopes; var Client = new MongoClient(settings.ConnectionString); mdb = Client.GetDatabase(settings.DbName); CollectionName = settings.CollectionName; }
private Func <string, LogLevel, bool> GetFilter(string name, IMongoDBLoggerSettings 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); }
/* * public static ILoggerFactory AddMongoDB(this ILoggerFactory factory) * { * return factory.AddMongoDB(includeScopes: false); * } * public static ILoggerFactory AddMongoDB(this ILoggerFactory factory, bool includeScopes) * { * factory.AddMongoDB((n, l) => l >= LogLevel.Information, includeScopes); * return factory; * } * public static ILoggerFactory AddMongoDB(this ILoggerFactory factory, LogLevel minLevel) * { * factory.AddMongoDB(minLevel, includeScopes: false); * return factory; * } * public static ILoggerFactory AddMongoDB(this ILoggerFactory factory, LogLevel minLevel, bool includeScopes) * { * factory.AddMongoDB((category, logLevel) => logLevel >= minLevel, includeScopes); * return factory; * } * public static ILoggerFactory AddMongoDB(this ILoggerFactory factory, Func<string, LogLevel, bool> filter) * { * factory.AddMongoDB(filter, includeScopes: false); * return factory; * } * public static ILoggerFactory AddMongoDB(this ILoggerFactory factory, Func<string, LogLevel, bool> filter, bool includeScopes) * { * factory.AddProvider(new MongoDBLoggerProvider(filter, includeScopes)); * return factory; * } */ public static ILoggerFactory AddMongoDB(this ILoggerFactory factory, IMongoDBLoggerSettings settings) { factory.AddProvider(new MongoDBLoggerProvider(settings)); return(factory); }