================================
#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.
additivity.
iphone.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(將日誌信息以流格式發送到任意指定的地方)