Java之org.apache.log4j的簡單配置及使用

1.Java類使用log4j,代碼如下:

package com.joyintech.ak.fault.servlet;

import org.apache.log4j.Logger;

public class Test {
	private static Logger logger = Logger.getLogger(Test.class);
	
	public static void main(String[] args) {
		logger.debug("Hello World");
	}
}

2.配置文件log4j.properties

log4j.logger.com.joyintech.ak.fault.servlet.Test= DEBUG, test

log4j.appender.test=org.apache.log4j.FileAppender

log4j.appender.test.File=D://logs/test.log

log4j.appender.test.layout=org.apache.log4j.PatternLayout

log4j.appender.test.layout.ConversionPattern=%d %p [%c] - %m%n

下面是使用RollingFileAppender的寫法,MaxFileSize限制日誌文件大小,當日志文件大於10MB,把之前的test.log改爲test.log.1,剛生成的則是test.log。

MaxBackupIndex是限制生成日誌的個數不能超過十個。

log4j.logger.com.joyintech.ak.fault.servlet.Test= DEBUG, test
log4j.appender.test=org.apache.log4j.RollingFileAppender
log4j.appender.test.File=D://logs/test.log
log4j.appender.test.Encoding=UTF-8
log4j.appender.test.MaxFileSize=10MB
log4j.appender.test.MaxBackupIndex=10
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.ConversionPattern=%-d %t %-5p [%c{1}:%L] %m%n 

下面是使用DailyRollingFileAppender的寫法,根據時間生成日誌名,比如今天是2010-01-13, 到明天這個文件將更名爲test.log2010-01-13.log
 

log4j.logger.com.joyintech.ak.fault.servlet.Test= DEBUG, test
log4j.appender.test=org.apache.log4j.DailyRollingFileAppender
log4j.appender.test.File=D://logs/test.log
log4j.appender.test.DatePattern=yyyy-MM-dd'.log'
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.ConversionPattern=%-d %t %-5p [%c{1}:%L] %m%n

3.控制檯的打印截圖:

4.生成日誌路徑的截圖:

 

5.生成日誌報錯LOG4J:ERROR Failed to rename

出現這個錯誤,是因爲日誌被其他線程佔用,有兩種解決辦法。

第一種檢查tomcat的server.xml是否配置了:

<Context path="" docBase="xxxx" debug="0" reloadable="true"/> 

如果配置了刪除則解決問題

第二種則是重寫DailyRollingFileAppender這個方法。

代碼下載地址:https://pan.baidu.com/s/1H3WOCjM72mA_m0GUgb4gtA

配置文件中使用自己重寫的就可:

log4j.logger.com.joyintech.ak.fault.servlet.VehicleFaultServlet= DEBUG, vehicleFaultServlet
log4j.appender.vehicleFaultServlet=com.joyintech.ak.fault.com.DailyRollingFileAppender
log4j.appender.vehicleFaultServlet.File=E:/logs/vehicleFault.log
log4j.appender.vehicleFaultServlet.DatePattern=yyyy-MM-dd'.log'
log4j.appender.vehicleFaultServlet.layout=org.apache.log4j.PatternLayout
log4j.appender.vehicleFaultServlet.layout.ConversionPattern=[%d] [%-5p] %c %n--%m--%n

 

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