Example #1
0
        /// <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()];
        }
Example #2
0
        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;
            }
        }
Example #3
0
        /// <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;
            }
        }