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 3094865027@qq.com * @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