log4j自定義日誌單獨輸出到指定文件夾

log4j添加如下配置

log4j.logger.uat_log=info,uatlog
log4j.additivity.uatlog=false
log4j.appender.uatlog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.uatlog.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.uatlog.File=D:/logs/uat/uat.log
log4j.appender.uatlog.layout=org.apache.log4j.PatternLayout
log4j.appender.uatlog.Threshold=info
log4j.appender.uatlog.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%C]-[%t]-[%p] %m -(\:%L)%n

第一行表示自定義的日誌輸出類起的別名叫做uat_log

第二行表示uatlog日誌不輸出到父類的日誌文件中,因爲我們所有自定義的日誌類都是繼承rootLogger根節點的日誌類,默認子類的日誌會輸出到父類指定的文件夾中,默認additivity是爲true的,我們修改爲false則就不會輸出到父類中

第三行表示使用每日產生一個日誌文件的方式

第四行表示滾動後文件添加的標識,例:如果當前超過指定日誌大小,那麼就會將uat.log日誌保存到uat.log_2020-06-16.log,清空uat.log,在繼續往uat.log裏面寫

第五行表示日誌輸出的路徑

第六行表示日誌的佈局

第七行表示輸出的級別,如果低於當前級別,則不輸出到文件,級別由高到低:debug<info<warn<error<fatal,我設置的是info,所以debug不會輸出

第八行表示打印日誌信息的格式%d 表示顯示時間格式,類似於java中的simpledatatformat,其他的如下:

%c:表示輸出日誌信息所屬的類目,通常就是所在類的全名。
%d:表示輸出日誌時間點的日期或時間,默認格式爲ISO8601,也可以在其後指定格式,如:%-d{yyyy-MM-dd HH\:mm\:ss}
%F:表示輸出日誌消息產生時所在的文件名稱。
%l:表示輸出日誌事件的發生位置,相當於%c.%M(%F:%L)的組合,包括類全名、方法、文件名以及在代碼中的行數。
%L:表示輸出代碼中的行號。
%m:表示輸出代碼中指定的具體日誌信息。
%M:表示輸出產生日誌信息的方法名。
%n:表示輸出一個回車換行符,Windows平臺爲"rn",Unix平臺爲"n"。
%p:表示輸出日誌信息的優先級,如DEBUG,INFO,WARN,ERROR,FATAL。
%r:表示輸出自應用程序啓動到輸出該log信息耗費的毫秒數。
%t:表示輸出產生該日誌事件的線程名。
%x:表示輸出和當前線程相關聯的NDC(嵌套診斷環境)。
%%:表示輸出一個"%"字符。

當使用的時候這樣去定義日誌對象:

private static final Logger log = LoggerFactory.getLogger("uat_log");

這樣我們就拿到了自定義的日誌對象啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章