簡體   English   中英

有沒有一種方法可以過濾特定類別的log4j日志

[英]Is there a way to filter log4j logs for a particular category

我要求整理屬於幾個類別的所有log4j日志,並在每天結束時發送郵件。 當我使用org.apache.log4j.DailyRollingFileAppender將所有類別記錄到相同的(日期)文件中時,我無法找到一種方法來過濾生成的日志,而不用通讀日志文件。 如果有人可以建議我一種使用java做到這一點的方法,那就太好了。 以下代碼是我需要過濾的一些日志類別的樣本。

log.fatal("Fatal error message");
log.error("Error message");

如果最后無法過濾,那么我至少可以找到一種方法來覆蓋這些類別的功能就足夠了。 我的log4j.properties看起來像這樣。

log =/usr/end_of_day_logs
log4j.rootLogger = DEBUG, FILE

log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=${log}/log.out
log4j.appender.FILE.Append=true
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm} [%C %x~ %M:%L] %-5p - %m%n

一種選擇是為單獨的類別創建單獨的文件,然后實現發送郵件的Appender 您可以查看DailyRollingFileAppender功能,並可能對其進行擴展以通過郵件發送文件。

您可以為每個日志級別(甚至不同的日志包)創建多個追加程序。

log =/usr/end_of_day_logs
log4j.rootLogger = FATAL, FFILE

log4j.appender.FFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FFILE.File=${log}/flog.out
log4j.appender.FFILE.Append=true
log4j.appender.FFILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FFILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm} [%C %x~ %M:%L] %-5p - %m%n

log =/usr/end_of_day_logs
log4j.rootLogger = ERROR, EFILE

log4j.appender.EFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.EFILE.File=${log}/elog.out
log4j.appender.EFILE.Append=true
log4j.appender.EFILE.DatePattern='.'yyyy-MM-dd
log4j.appender.EFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.EFILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm} [%C %x~ %M:%L] %-5p - %m%n

然后使用帶有必需模式的SMTP附加程序的另一個附加程序。

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.BufferSize=1
log4j.appender.MAIL.SMTPHost=smtp.example.com
log4j.appender.MAIL.From=application@example.com
log4j.appender.MAIL.To=developer@example.com
log4j.appender.MAIL.Subject=Exception in Application
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5r %-5p [%t] %c{2} - %m%n

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM