1. 程式人生 > >jfinal使用log4j列印日誌,log4j.properties配置

jfinal使用log4j列印日誌,log4j.properties配置

jfinal中使用log4j列印日誌到日誌檔案中,日誌檔案路徑自定義到WEB-INF/logs下,log4j.properties詳細配置。

 //在jvm載入log4j.properties之前設定變數,專案根目錄絕對路徑,用於log4j.properties中設定自定義日誌檔案輸出路徑
 System.setProperty("webRootPath", PathKit.getWebRootPath());

log4j.properties

### 設定###
log4j.rootLogger = debug,stdout,D,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 = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 輸出DEBUG 級別以上的日誌檔案設定 ###
#定期回滾日誌檔案
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.R2=org.apache.log4j.RollingFileAppender
#設定日誌檔案的大小
#log4j.appender.D.MaxFileSize=10M
#儲存N個備份檔案
#log4j.appender.D.MaxBackupIndex=10
#定義日誌存放路徑(必須在jvm載入log4j.properties之前設定變數,專案根目錄絕對路徑)
#System.setProperty("webRootPath", PathKit.getWebRootPath());
log4j.appender.D.File = ${webRootPath}/WEB-INF/logs/debug.log
#日誌檔案是否追加
log4j.appender.D.Append = true
#定義的時間格式,如果時間定義到分鐘(mm)就是每分鐘生成一個日誌檔案,而這裡定義的這個格式就是日誌名字尾,每天產生一個日誌檔案
log4j.appender.D.DatePattern='_'yyyy-MM-dd'.log'
#日誌輸出級別
log4j.appender.D.Threshold = DEBUG
#日誌編碼
log4j.appender.D.Encoding=UTF-8
#日誌中輸出的日誌的格式
log4j.appender.D.layout = org.apache.log4j.PatternLayout
#定義的日誌格式
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} - [ %t:%r ] - [ %p ] - [ %l ] %n%m%n

### 輸出ERROR 級別以上的日誌檔案設定 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ${webRootPath}/WEB-INF/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.E.Threshold = ERROR
log4j.appender.E.Encoding=UTF-8
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} - [ %t:%r ] - [ %p ] - [ %l ] %n%m%n

#設定指定包的日誌級別
log4j.logger.org.apache=ERROR
log4j.logger.cn.jiguang=ERROR
log4j.logger.com.alibaba=ERROR

java程式碼,測試日誌列印:

package com.xiaheng.module.main.controller.admin;

import org.apache.log4j.Logger;

import com.jfinal.log.Log;
import com.xiaheng.core.annotation.ControllerBind;
import com.xiaheng.core.annotation.ValidateTOKEN;
import com.xiaheng.core.jfinal.BaseAdminController;

/**
 * 
 * @author [email protected]
* @date 2018年4月14日 */ @ControllerBind(route = "admin/log") public class LogController extends BaseAdminController { private final static Logger LOGGER = Logger.getLogger(LogController.class); private final static Log LOG = Log.getLog(LogController.class); @ValidateTOKEN(isValidate = false) public void index() { LOGGER.info("log4j info1"); LOG.debug("log4j debug2"); renderText("log"); } }

日誌檔案截圖:


log日誌檔案日誌效果:

2018-04-14 14:23:21 - [ http-nio-80-exec-14:13106 ] - [ INFO ] - [ com.xiaheng.module.main.controller.admin.LogController.index(LogController.java:23) ] 
log4j info1
2018-04-14 14:23:21 - [ http-nio-80-exec-14:13106 ] - [ DEBUG ] - [ com.xiaheng.module.main.controller.admin.LogController.index(LogController.java:24) ] 
log4j debug2

依賴jar包:log4j-1.2.16.jar ,jfinal版本3.3