jfinal使用log4j打印日志,log4j.properties配置

时间:2022-07-14 22:04:27

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");
    }
}

日志文件截图:

jfinal使用log4j打印日志,log4j.properties配置

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