Log4j - mehrere appenders schreiben in dieselbe Datei, mit einer, immer logs

Ich habe einen log4j appender definiert, wie:

log4j.logger.com.example = DEBUG, filelog

log4j.appender.filelog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.filelog.File=c:/app.log
log4j.appender.filelog.layout=org.apache.log4j.PatternLayout
log4j.appender.filelog.layout.ConversionPattern=%d | %m%n
log4j.appender.filelog.DatePattern=.dd-MM-yyyy

In meiner Klasse, ich bekomme den logger wie:

Log logger = LogFactory.getLog(getClass());

Diese funktioniert einwandfrei. Ich möchte ein logger, der immer protokolliert bestimmte Meldungen (keine Fehler, aber Dinge wie, wie lange Transaktionen nahm). Wenn ich Schreibe, diese auf DEBUG oder INFO, die ich gar nicht sehen, wenn der log-level geändert wird. Ich denke, dass ich dies mit einem anderen appender schreibt auf die gleiche Datei.

Ist dies möglich, zwei appenders schreiben in die gleiche Datei? Wie kann ich die logger-Instanz, wo ich das normale debug-appender und die Transaktions-appender in der gleichen Klasse? Diese Nachrichten nicht alle im gleichen Paket, so kann ich nicht so einstellen, dass ein bestimmtes Paket immer Abmelden. Werde ich diese appenders schreiben zu verschiedenen Dateien, oder kann ich abrufen, die Sie sowohl in den code, und haben etwas wie:

Log alwaysLogger = LogFactory.getLog(ALWAYS);
alwaysLogger.debug("This message will always be written regardless of the level set on the filelog appender");

Update
Ich könnte schreiben, zu zwei verschiedenen log-Dateien, wenn notwendig, aber wie bekomme ich die logger-Instanz in meiner Klasse? Ich will nicht konfigurieren, ein Paket/Klasse, immer ein appender über die anderen als die Klassen melden Informationen/Fehlermeldungen und die Transaktions - "immer" - Nachrichten, die während einer normal laufen. Gibt es eine Möglichkeit, das zu erreichen, was ich brauche, auch wenn es schreiben zwei verschiedene log-Dateien?

Schreibe einen Kommentar