/// <summary> /// Adds the given provider to those used in creating <see cref="ILogger"/> instances. /// </summary> /// <param name="provider">The <see cref="ILoggerProvider"/> to add.</param> public void AddProvider(ILoggerProvider provider) { if (CheckDisposed()) { throw new ObjectDisposedException(nameof(LoggerFactory)); } if (provider == null) { throw new ArgumentNullException(nameof(provider)); } lock (_sync) { AddProviderRegistration(provider, dispose: true); foreach (KeyValuePair <string, Logger> existingLogger in _loggers) { Logger logger = existingLogger.Value; LoggerInformation[] loggerInformation = logger.Loggers; int newLoggerIndex = loggerInformation.Length; Array.Resize(ref loggerInformation, loggerInformation.Length + 1); loggerInformation[newLoggerIndex] = new LoggerInformation(provider, existingLogger.Key); logger.Loggers = loggerInformation; (logger.MessageLoggers, logger.ScopeLoggers) = ApplyFilters(logger.Loggers); } } }
private LoggerInformation[] CreateLoggers(string categoryName) { var loggers = new LoggerInformation[_providerRegistrations.Count]; for (int i = 0; i < _providerRegistrations.Count; i++) { loggers[i] = new LoggerInformation(_providerRegistrations[i].Provider, categoryName); } return(loggers); }
private LoggerInformation[] CreateLoggers(string categoryName) { var loggers = new LoggerInformation[_providerRegistrations.Count]; for (int i = 0; i < _providerRegistrations.Count; i++) { SetLoggerInformation(ref loggers[i], _providerRegistrations[i].Provider, categoryName); } ApplyRules(loggers, categoryName, 0, loggers.Length); return(loggers); }
private LoggerInformation[] CreateLoggers(string categoryName) { var loggers = new LoggerInformation[_providerRegistrations.Count]; for (int i = 0; i < _providerRegistrations.Count; i++) { var provider = _providerRegistrations[i].Provider; loggers[i].Logger = provider.CreateLogger(categoryName); loggers[i].ProviderType = provider.GetType(); } ApplyRules(loggers, categoryName, 0, loggers.Length); return(loggers); }
private void SetLoggerInformation(ref LoggerInformation loggerInformation, ILoggerProvider provider, string categoryName) { loggerInformation.Logger = provider.CreateLogger(categoryName); loggerInformation.ProviderType = provider.GetType(); loggerInformation.ExternalScope = provider is ISupportExternalScope; }