log4j的使用非常簡單,簡單三步就ok。
Log4j所需的jar包:commons-logging.jar和log4j.jar。
Jar包下載地址:http://download.csdn.net/detail/qq_33556185/9568809
(一)寫log4j.properties:
#設置日誌等級及目的地
log4j.rootLogger=ERROR,Console,File
#輸出到控制臺
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=system.out
#日誌輸出格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#輸出到文件(tomcat\bin\logs\springMVC.log)
log4j.appender.File = org.apache.log4j.RollingFileAppender
log4j.appender.File.File = logs/springMVC.log
#日誌文件最大值
log4j.appender.File.MaxFileSize = 1000MB
#日誌輸出門檻
log4j.appender.File.Threshold = WARN
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
#輸出級別,共有5級:
#FATAL 致命錯誤
#ERROR 嚴重警告
#WARN 一般警告
#INFO 普通信息
#DEBUG 調試信息
#Appender 為日誌輸出目的地,Log4j提供的appender有以下幾種
#org.apache.log4j.ConsoleAppender(控制臺),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件),
#org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),
#org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)
#Layout:日誌輸出格式,Log4j提供的layout有以下幾種:
#org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串),
#org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)
#打印參數: Log4J采用類似C語言中的printf函數的打印格式格式化日誌信息,如下:
#%m輸出代碼中指定的消息
#%p輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
#%r輸出自應用啟動到輸出該log信息耗費的毫秒數
#%c輸出所屬的類目,通常就是所在類的全名
#%t輸出產生該日誌事件的線程名
#%n輸出一個回車換行符,Windows平臺為“/r/n”,Unix平臺為“/n”
#%d輸出日誌時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},
#%l輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。
(二)和spirng集成:
在web.xml裏加載log4j的配置文件,並配置監聽
<context-param> <param-name>webAppRootKey</param-name> <param-value>springMVC</param-value> </context-param> <!-- 加載log4j配置文件 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <!--log4jRefreshInterval為100000表示 開一條watchdog線程每10秒掃描一下配置文件的變化; --> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>100000</param-value> </context-param> <!-- 1. 動態的改變記錄級別和策略,不需要重啟Web應用; 2. 把log文件定在 /WEB-INF/logs/ 而不需要寫絕對路徑。 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
(三)使用log4j打印日誌:
1)獲得logger的副本(參數是類的class對象)
private static final Logger logger=Logger.getLogger(Test.class);
2)打印日誌
logger.fatal("有一個致命錯誤:");
logger.error("有一個嚴重警告:");
logger.warn("有一個警告:");
logger.info("有一個普通信息:");
logger.debug("有一個調試信息:");
tips:
需要註意的一點是要是tomcat下部署了多個應用,同時都使用了org.springframework.web.util.Log4jConfigListener,
那需要設置webAppRootKey,否則因為多個同樣的webAppRootKey的Log4jConfigListener的多個線程會沖突,而導致應用啟動失敗。
Tags: 下載地址 控制臺 ERROR 信息
文章來源: