/// <summary> /// Sets logging level for all current loggers to the level provided in arguments. /// Note: use it only when you need more control on logging, e.g. in unit tests. Otherwise use configuration files. /// </summary> /// <param name="level"></param> public static void SetLoggingLevel(log4net.Core.Level level) { var repositories = log4net.LogManager.GetAllRepositories(); //Configure all loggers to be at the debug level. foreach (var repository in repositories) { repository.Threshold = repository.LevelMap[level.ToString()]; var hierarchy = (log4net.Repository.Hierarchy.Hierarchy)repository; var loggers = hierarchy.GetCurrentLoggers(); foreach (var logger in loggers) { ((log4net.Repository.Hierarchy.Logger)logger).Level = hierarchy.LevelMap[level.ToString()]; } } //Configure the root logger. var h = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository(); var rootLogger = h.Root; rootLogger.Level = h.LevelMap[level.ToString()]; }
public void writeBD(Capa capa, string msg, log4net.Core.Level level) { switch (level.ToString()) { case "ALERT": eventLogger.Error(msgString(capa, msg)); break; case "DEBUG": eventLogger.Debug(msgString(capa, msg)); break; case "EMERGENCY": eventLogger.Fatal(msgString(capa, msg)); break; case "INFO": eventLogger.Info(msgString(capa, msg)); break; case "VERBOSE": eventLogger.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, log4net.Core.Level.Trace, msgString(capa, msg), null); break; } }
/// <summary> /// Sets the <see cref="IAppender"/>'s filter level to the level specified /// </summary> /// <param name="appender">the <see cref="IAppender"/> to change</param> /// <param name="newLevel">the new level at which the <see cref="IAppender"/> should log</param> private static void SetAppenderFilterLevel(IAppender appender, log4net.Core.Level newLevel) { if (appender == null || newLevel == null) { return; } AppenderSkeleton baseAppender = appender as AppenderSkeleton; if (baseAppender == null) { return; } log4net.Filter.LevelRangeFilter rangeFilter = GetLevelRangeFilter(baseAppender); if (rangeFilter == null) { return; } // lock the IAppender so that its clients wait until this process completes lock (baseAppender) { appender.DoAppend(new log4net.Core.LoggingEvent(logger.GetType(), log4net.LogManager.GetRepository(), logger.GetType().Name, log4net.Core.Level.Info, "Changed log level to " + newLevel.ToString(), null)); rangeFilter.LevelMin = newLevel; } }