view content/Java/log4j-logger-additivity.md @ 51:b334d87a9c9a

add a blog post about pinentry vs enigmail
author Dirk Olmes <dirk@xanthippe.ping.de>
date Tue, 09 Dec 2014 12:19:59 +0100 (2014-12-09)
parents 4cd9b65e10e4
children 1d9382b0329b
line wrap: on
line source
Title: Log4j and logger additivity
Date: 2008-02-18
Tags: log4j, logging
Lang: en

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