Life in my own company

Its all up to me.
posts - 138, comments - 219, trackbacks - 109

My Links

News



Twitter



Tag Cloud

Archives

Post Categories

Play

Work

log4net and changing the logger levels

Recently I had the need to change the logging level for all loggers due to the need to hit the logging statements for NCover.  This was harder than it appeared, and I couldn't really find anything out there that really documented the code you needed, so here's the code:

 

 

        private void TurnOnLogging()
        {
            
            log4net.Repository.ILoggerRepository[] repositories= log4net.LogManager.GetAllRepositories();

            //Configure all loggers to be at the debug level.
            foreach (log4net.Repository.ILoggerRepository repository in repositories)
            {
                repository.Threshold = repository.LevelMap["DEBUG"];
                log4net.Repository.Hierarchy.Hierarchy hier = (log4net.Repository.Hierarchy.Hierarchy)repository;
                log4net.Core.ILogger[] loggers=hier.GetCurrentLoggers();
                foreach (log4net.Core.ILogger logger in loggers)
                {
                    ((log4net.Repository.Hierarchy.Logger) logger).Level = hier.LevelMap["DEBUG"];
                }
            }

            //Configure the root logger.
            log4net.Repository.Hierarchy.Hierarchy h = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository();
            log4net.Repository.Hierarchy.Logger rootLogger = h.Root;
            rootLogger.Level = h.LevelMap["DEBUG"];

        }

Some caveat's with this:

 

1. It'll only work after you've already done something to cause the logging system to initialize.

2.  I'll only see loggers that have been created.

 

Hopefully this is helpful to someone else!

Print | posted on Wednesday, August 22, 2007 2:47 PM |

Feedback

Gravatar

# re: log4net and changing the logger levels

Thanks. This info was very helpful!
12/6/2007 4:58 AM | Richard H
Gravatar

# re: log4net and changing the logger levels

Hi,

Thanks ! Great peace of code !

I wrote some and implementation example here:
http://ysgitdiary.blogspot.com/2009/05/dynamically-set-log-level-of-log4net.html
5/3/2009 5:37 AM | Yordan Georgiev
Gravatar

# re: log4net and changing the logger levels

Thanks! This is just what I was looking for.

- B
5/11/2009 10:52 AM | Brandon
Post A Comment
Title:
Name:
Email:
Website:
Comment:
Verification:
 

Powered by: