log4j典型配置快速上手筆記

================================
#root logger配置
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=   %-4r %-5p [%t] %37c %10x  %X{traceId} - %m%n  
-----------------------------------------------------------
#iphone.fc的logger配置
log4j.logger . iphone.fc=info,iphone
log4j.appender.iphone=org.apache.log4j.ConsoleAppender
log4j.appender.iphone.layout=org.apache.log4j.PatternLayout
log4j.appender.iphone.layout.ConversionPattern=[%d{MM dd HH:mm:ss}]>> %c %m%n
log4j. additivityiphone.fc=false
=================================================
紅色部分便可以做爲一個logger的名稱引用此配置項,默認的配置或配置文件裏面沒有配置的logger name的日誌會使用root logger的配置
例:
    Logger logger1 = Logger.getLogger("Sort.class"),此logger的logger name 爲"Sort.class",在配置文件裏面沒有,則會使用root logger的配置
    Logger logger2 = Logger.getLogger("  iphone.fc "),此logger的logger name 爲「 iphone.fc「,在配置文件裏面能夠找到,則會使用iphone.fc的配置
root logger爲全部其餘logger配置的上級,默認按root logger配置輸出後再按本配置輸出(即便用logger2輸出日誌時會先輸出一條root logger格式的日誌,再輸出一條logger2獲取的格式的日誌),使用 additivity能夠設置不附件root logger。

能夠經過 conversion patterns 來控制日誌的格式化輸出

log4j.appender.A1.layout.ConversionPattern=[%d{yyyy-MM-dd hh:mm:ss SSS}]  %-4r %-5p [%t%37c %10x  %X{traceId} - %m%n apache

    %d{yyyy-MM-dd hh:mm:ss SSS}:輸出當前時間,格式爲「年-月-日 時:分:秒 毫秒」
    %-4r:程序運行的毫秒數,-4表示輸出佔四個字符,左對齊;
    %-5p:日誌級別,五個字符左對齊;
    %t:請求日誌輸出的線程;
    %37c:日誌請求的logger名稱,通常爲Logger.getLogger(arg)設置的arg,佔37個字符右對齊;
    %10x:經過NDC push的字符串;
    %X{traceId}:經過MDC put的key爲traceId的值;
    %m:日誌的真正內容;
    %n:輸出一個換行符
app

Appender 爲日誌輸出目的地,Log4j提供的appender有如下幾種
 org.apache.log4j.ConsoleAppender(控制檯),
 org.apache.log4j.FileAppender(文件),
 org.apache.log4j.DailyRollingFileAppender(天天產生一個日誌文件),
 org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),
 org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)
相關文章
相關標籤/搜索