【Java日誌】log4j配置詳解
阿新 • • 發佈:2018-11-08
#設定日誌的級別,以及日誌所使用的appender log4j.rootLogger=all, console, file ### 控制檯 ### log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %c(%L) %M | [%p] %F | %m%n log4j.appender.console.Threshold=error ## 以下為ConsoleAppender私有的配置 #引數:System.out; System.err log4j.appender.console.Target=System.out ### 檔案 ### log4j.appender.file=org.apache.log4j.FileAppender log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %c(%L) %M | [%p] %F | %m%n ## 以下為File輸出的私有配置 log4j.appender.file.Encoding=UTF-8 #File:指定日誌檔案的位置 log4j.appender.file.File=/logs/log/JCLLog.log #Append:預設是true,即將訊息增加到檔案中,false指將訊息覆蓋到指定的檔案內容 log4j.appender.file.Append=true ### 每指定時間生成一個日誌檔案### log4j.appender.dayfile=org.apache.log4j.DailyRollingFileAppender log4j.appender.dayfile.layout=org.apache.log4j.PatternLayout log4j.appender.dayfile.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %c(%L) %M | [%p] %F | %m%n log4j.appender.dayfile.File=/logs/log/daylog ##以下為DailyRollingFileAppender的私有配置 log4j.appender.dayfile.DatePattern='_'yyyy-MM-dd_HH_mm'.log' #DatePattern:日誌滾動的時間週期 #yyyy-MM:每月; #yyyy-ww:每週; #yyyy-MM-dd:每天; #yyyy-MM-dd-a:每天兩次,上下午; #yyyy-MM-dd-HH:每小時; #yyyy-MM-dd-HH-mm:每分鐘; ### 檔案大小到達指定尺寸的時候產生一個新的檔案### log4j.appender.rollfile=org.apache.log4j.RollingFileAppender log4j.appender.rollfile.layout=org.apache.log4j.PatternLayout log4j.appender.rollfile.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %c(%L) %M | [%p] %F | %m%n log4j.appender.rollfile.File=/logs/log/jcllog.log ##以下為RollingFileAppender的私有配置 #MaxFileSize:檔案的最大大小,當檔案到達該大小時,將會自動滾動,即將原來的內容移到xx.log.1檔案,單位可以是:KB,MB,GB log4j.appender.rollfile.MaxFileSize=100KB #MaxBackupIndex:指定可以產生的滾動檔案的最大數 log4j.appender.rollfile.MaxBackupIndex=22 ### 將日誌資訊以流格式傳送到任意指定的地方### log4j.appender.writer=org.apache.log4j.WriterAppender ###### appender(輸出端)###### #org.apache.log4j.ConsoleAppender(輸出到控制檯) #org.apache.log4j.FileAppender(輸出到檔案) #org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌檔案) #org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案) #org.apache.log4j.WriterAppender(將日誌資訊以流的格式傳送到任意指定的地方) ##輸出端共同選項: #log4j.appender.xxx.Threshold=WARN(指定當前appender列印日誌的最低層次) #log4j.appender.xxx.ImmediateFlush=true(預設為true,意味著所有的訊息都會立即輸出) ###### layout(日誌格式化)###### #org.apache.log4j.HTMLLayout(以HTML表格形式佈局) #org.apache.log4j.PatternLayout(可以靈活地指定佈局模式) #org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串) #org。apache.log4j.TTCCLayout(包含日誌產生的時間,執行緒,類別等等資訊) ###### 列印資訊替換符 ###### #%d {date}:輸出當前時間,可以直接在其後指定格式,如:%d{yyyy/MM/dd HH:mm:ss} #%p {priority}:輸出優先順序,即FATAL,ERROR,WARN,INFO,DEBUG,TRACE #%m {message}:輸出程式碼中指定的資訊,即傳入的要列印的內容 #%M {Method}:輸出所在方法名 #%r {}:輸出自專案啟動到輸出該log所耗費的毫秒數 #%c {category}:輸出所屬的類目,通常就是所在的類名 #%t {thread}:輸出產生該日誌的執行緒名 #%n {}:輸出一個換行符,windows平臺為“rn”,unix平臺為“n” #%l {line}:輸出日誌事件的發生位置,包括類目名,發生的執行緒,以及在程式碼中的行數,如果為%L,則只輸出行數 #%F {File}:輸出產生日誌的檔名稱