Ejemplo n.º 1
0
        internal void ProcessLogLevel <TSinkSettings>(TSinkSettings settings) where TSinkSettings : class, ILoggingSinkOptions, new()
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            foreach (var item in LogLevel)
            {
                var nav = _namespaceNavigatorCache.Parse(item.Key, item.Value, out _);
                if (nav is EmptyNamespaceNavigationNode)
                {
                    continue;
                }
                if (!_namespaceFilterNavRoots.Contains(nav))
                {
                    lock (_parsedLgLevelLock) {
                        if (!_namespaceFilterNavRoots.Contains(nav))
                        {
                            _namespaceFilterNavRoots.Add(nav);
                        }
                    }
                }
            }

            NavigationFilterProcessor.SetSinkFilterNavMatcher(Name, _namespaceNavigatorCache,
                                                              LogLevel.TryGetValue("Default", out var x) ? x : LogEventLevelConstants.Verbose);

            foreach (var item in Aliases)
            {
                LogEventLevelAliasManager.AddAlias(item.Key, LogEventLevelConverter.Convert(item.Value));
            }
        }
 internal static LogEventLevel Convert(string level, LogEventLevel defaultLevel = LogEventLevel.Verbose)
 {
     return(EnumsNET.Enums.TryParse(level, false, out LogEventLevel logEventLevel)
         ? logEventLevel
         : LogEventLevelAliasManager.AliasToRealLevel(level, defaultLevel));
 }