2016-11-17 3 views
1

Ich versuchte unten Paketappender in log4jproperties Datei, aber es hat nicht funktioniert. Bitte helfen Sie mir, dieses Problem zu lösen.ist es möglich, in log4j 1.x paketbasiertes Platzhalterzeichen anzugeben?

log4j.logger.com.ewp.*.service=ERROR,SERVICELOG 

#SERVICELOG appender 
log4j.appender.SERVICELOG=org.apache.log4j.RollingFileAppender 
log4j.appender.SERVICELOG.File=C:/Log/service_log.log 
log4j.appender.SERVICELOG.layout=org.apache.log4j.PatternLayout 

Antwort

0

Es gibt nur ein Konzept von Präfixen oder Erbe in log4j (1.x), so dass Sie nicht in der Lage sein werden, das zu tun.

Siehe https://logging.apache.org/log4j/1.2/manual.html

Sie müssen jedes * .service Blatt Paket in der Konfigurationsdatei setzen.

Alternativ können Sie auch verschiedene Logger-Namen verwenden, vielleicht einige, die das Benennungsschema umkehren, oder vielleicht etwas symbolischeres (ich meine, wenn Sie eine dedizierte Protokollierung benötigen, könnte dies auch gültig sein). Oder verwenden Sie einen sekundären Logger, wenn der Codierungsaufwand akzeptabel ist.

Denken Sie an:

Logger log = Logger.getLogger("any.string.prefix.here." + "some.suffix"); 

Edit: Wenn Sie in der Lage sind, um die Classpath zu ändern und setzen log4j-Extras, um es, könnten Sie etwas Hilfe mit den Filter von dort bekommen: https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/filter/package-summary.html

jedoch AFAICS , ExpressionFilter Filter auf Message und LoggerMatchFilter Filter auf genaue Logger-Namen - also diese Lösungen möglicherweise auch nicht.

Verwandte Themen