jfinal使用log4j列印日誌,log4j.properties配置
阿新 • • 發佈:2019-01-10
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