日誌架構log4j基本使用
阿新 • • 發佈:2018-03-29
Java log4j [toc]
和
日誌架構log4j基本使用
配置文件
############################################### # 以下的配置文件都是以log4j.開頭 # 最最重要就是第一個log4j.rootLogger,指定log4j日誌的輸出級別(目的地) # log4j.rootLogger=INFO,stdout,file意思為: # 日誌可以輸出INFO級別以上的數據,將日誌輸出到stdout標準控制輸出(控制臺),輸出到file # # 常見的日誌輸出級別:DEBUG(調試) < INFO(信息) < WARN(警告) < ERROR(錯誤) < FATAL(致命錯誤) # 日誌輸出的順序:和日誌輸出級別一致,即配置為一個級別,輸出的內容只能是該級別及其以上級別的信息 # INFO(輸出的包括 INFO WARN ERROR FATAL) # ERROR(ERROR FATAL) # 所以,一般情況下:在開發,測試環境中,日誌的級別為DEBUG;在生產環境中,日誌級別為INFO # # 輸出目的地: # 日誌輸出的各種各樣的目的地,都是通過Appender來進行實現追加的 # 我們在appender中看到的PatternLayout的格式如下: # #%m 輸出代碼中指定的消息 #%n 輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n” #%p 輸出優先級,即日誌級別:DEBUG,INFO,WARN,ERROR,FATAL #%r 輸出自應用啟動到輸出該log信息耗費的毫秒數 #%c 輸出所屬的類目,通常就是所在類的全名 #%t 輸出產生該日誌事件的線程名 #%d 輸出日誌時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},輸出類似:2002年10月18日 22 : 10 : 28 , 921 #%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java: 10 ) log4j配置詳解 - stone - stonexmx 的博客 # 常見的Appender # ConsoleAppender # FileAppender # # ############################################### log4j.rootLogger=INFO,stdout,R, E log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n log4j.appender.file = org.apache.log4j.FileAppender log4j.appender.file.File = ./logs/spider.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n ### 輸出到日誌文件 ### # 每天生成一個新的日誌文件 log4j.appender.R = org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File = ./logs/log.log log4j.appender.R.Append = true # DEBUG級別及以上的日誌信息輸出到./logs/log.log中 log4j.appender.R.Threshold = DEBUG log4j.appender.R.layout = org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n ### 保存異常信息到單獨文件 ### # 每天生成一個新的日誌文件 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File = ./logs/error.log log4j.appender.E.Append = true # ERROR級別及以上的日誌信息輸出到./logs/log.log中 log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n
程序代碼
package com.uplooking.bigdata.spider; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 使用Log4j步驟: * 1.引入maven的依賴 * 2.將log4j.properties或log4j.xml配置文件添加進項目的classpath下面 * * log4j的入口類就是Logger */ public class Log4jTest { @Test public void testLog4j() { Logger logger = LoggerFactory.getLogger(Log4jTest.class); logger.debug("日誌-debug信息"); logger.info("日誌-info信息"); logger.warn("日誌-warn信息"); logger.error("日誌-error信息"); } }
測試
執行程序代碼,輸出如下:
2018-03-29 15:31:51,164 [main] [com.uplooking.bigdata.spider.Log4jTest] [INFO] - 日誌-info信息
2018-03-29 15:31:51,165 [main] [com.uplooking.bigdata.spider.Log4jTest] [WARN] - 日誌-warn信息
2018-03-29 15:31:51,165 [main] [com.uplooking.bigdata.spider.Log4jTest] [ERROR] - 日誌-error信息
同時也可以看到生成的日誌文件log.log
error.log
。日誌架構log4j基本使用