一個appender的變化閾值我要實現以下目標:log4j的:基於
All log-messages with TRACE or higher should be logged to log-trace.log
All log-messages with DEBUG or higher should be logged to log-debug.log
In general messages with DEBUG or higher should be logged to stdout, but:
for Class de.foo only INFO or higher should be logged to stdout,
for Class de.bar also TRACE and higher should be logged to stdout.
我manged獲得分成文件的工作:
## Root logger
log4j.rootLogger=trace,STDOUT,FILE_DEBUG,FILE_TRACE
## Appenders
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.Threshold=DEBUG
# File appenders
log4j.appender.FILE_DEBUG=org.apache.log4j.RollingFileAppender
log4j.appender.FILE_DEBUG.File=logs/log-debug.log
log4j.appender.FILE_DEBUG.Threshold=DEBUG
log4j.appender.FILE_TRACE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE_TRACE.File=logs/log-trace.log
log4j.appender.FILE_TRACE.Threshold=TRACE
# [..] Layouts
但是,如果我嘗試更改標準輸出的調試級別,我還會更改進入文件的內容,例如
log4j.logger.de.foo=info
使得來自foo的TRACE消息從跟蹤日誌文件中消失。我正在尋找的東西可能是這樣的:
log4j.appender.FILE_DEBUG.de.foo.Threshold=DEBUG
但這並不起作用。感謝您的任何幫助:)
爲什麼你認爲Artems的解決方案是不可能的? –
當然,自定義代碼可以做任何事情,但是從盒子來看這是不可能的。我想平均項目只有足夠的東西來編寫自定義日誌appender – xeye