Log4j and logger additivity

18.02.2008 by Dirk Olmes

Sometimes you want to write more than one logfile using logj4. This is possible by defining multiple appenders and specifying an appender for a certain logger like this:

log4j.appender.A1=org.apache.log4j.ConsoleAppender
....
log4j.appender.A2=org.apache.log4j.FileAppender
....

log4j.rootLogger=DEBUG, A1
log4j.logger.foo=DEBUG, A2

Unfortunately, all output that goes through the logger foo comes out in both appenders, which may not be what you want. The log4j docs talk about logger additivity but don’t show concrete examples how to configure it. The trick is to configure the additivity on the logger and not on the appender. (I always fall into that trap). Simply add the following to the example above to stop messages to logger foo come out on A1:

log4j.additivity.foo = false

Comments

There are no comments yet.

Leave a comment
Your name:
Comment: