log4j使用總結

Gyoung發表於2016-06-14

1.不同包的日誌,記錄到不同檔案

log4j.logger.com.gyoung.service.impl=INFO,Doc

log4j.appender.Doc=com.gyoung.logger.LogAppender
log4j.appender.Doc.Threshold=INFO
log4j.appender.Doc.ImmediateFlush=true
log4j.appender.Doc.Append=true
log4j.appender.Doc.File=logger/doc/document.log
log4j.appender.Doc.DatePattern='.'yyyy-MM-dd
log4j.appender.Doc.layout=org.apache.log4j.PatternLayout
log4j.appender.Doc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} (%m)%n

這樣名稱空間為com.gyoung.service.impl的日誌就只會記錄到document.log檔案中

2.分日誌級別記錄日誌,即info,debug,error分別記錄到不同的檔案中

新建一個類,繼承DailyRollingFileAppender,重寫isAsSevereAsThreshold

public final class LogAppender extends DailyRollingFileAppender {

    @Override
    public boolean isAsSevereAsThreshold(Priority priority) {
        //只判斷是否相等,而不判斷優先順序 123
        return this.getThreshold().equals(priority);
    }
}
#自定義日記處理
log4j.rootLogger=DEBUG,console,ErrorAppender,DebugAppender,InfoAppender,WarnAppender


log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.Threshold=INFO
log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.ErrorAppender=com.gyoung.logger.LogAppender
log4j.appender.ErrorAppender.Threshold=ERROR
log4j.appender.ErrorAppender.ImmediateFlush=true
log4j.appender.ErrorAppender.Append=true
log4j.appender.ErrorAppender.File=logger/Error/ErrorAppender.log
log4j.appender.ErrorAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.ErrorAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ErrorAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} (%m)%n

log4j.appender.DebugAppender=com.gyoung.logger.LogAppender
log4j.appender.DebugAppender.Threshold=DEBUG
log4j.appender.DebugAppender.ImmediateFlush=true
log4j.appender.DebugAppender.Append=true
log4j.appender.DebugAppender.File=logger/Debug/DebugAppender.log
log4j.appender.DebugAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.DebugAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.DebugAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} (%m)%n

log4j.appender.InfoAppender=com.gyoung.logger.LogAppender
log4j.appender.InfoAppender.Threshold=INFO
log4j.appender.InfoAppender.ImmediateFlush=true
log4j.appender.InfoAppender.Append=true
log4j.appender.InfoAppender.File=logger/Info/InfoAppender.log
log4j.appender.InfoAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.InfoAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.InfoAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} (%m)%n

log4j.appender.WarnAppender=ccom.gyoung.logger.LogAppender
log4j.appender.WarnAppender.Threshold=WARN
log4j.appender.WarnAppender.ImmediateFlush=true
log4j.appender.WarnAppender.Append=true
log4j.appender.WarnAppender.File=logger/Warn/WarnAppender.log
log4j.appender.WarnAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.WarnAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.WarnAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} (%m)%n

 ps:web站點的日誌檔案會在tomcat/bin檔案平下