log4j日志文件配置

log4j已经停止更新了,官方建议升级到log4j2版本。但是如果你没有使用异步输出日志的话,其实提升不大。

添加maven依赖

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<!--log4j扩展工具,非必须-->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>apache-log4j-extras</artifactId>
    <version>1.2.17</version>
</dependency>

log4j.properties配置文件配置示例

INFO级别的配置

log4j.rootLogger = INFO, CONSOLE, I, E
### 输出到控制台 ###
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern =  %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n

### 输出INFO级别以上的日志到文件中 ###
log4j.appender.I = org.apache.log4j.RollingFileAppender
log4j.appender.I.File = ./logs/project_name/info/log_info.log
log4j.appender.I.Append = true
#单个日志大小500M
log4j.appender.I.MaxFileSize=500MB
#总共备份10GB
log4j.appender.I.MaxBackupIndex=20
## 输出INFO级别以上的日志
log4j.appender.I.Threshold = INFO
log4j.appender.I.layout = org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n

### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.E.File = ${catalina.home}/logs/project_name/error/log_error.log
log4j.appender.E.Append = true
#每半天生成一个日志文件
log4j.appender.E.DatePattern = '.'yyyy-MM-dd-a
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n

DEBUG级别的日志配置

log4j.rootLogger = DEBUG, CONSOLE, D, I, E
### 输出到控制台
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern =  %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n

### 输出DEBUG级别以上的日志到文件中 仅测试时使用,正式部署请将这里的注释掉###
log4j.appender.D = org.apache.log4j.RollingFileAppender
#日志放到tomcat的bin目录下
log4j.appender.D.File = ./logs/project_name/debug/log_debug.log
#单个日志大小32M
log4j.appender.D.MaxFileSize=32MB
#总共备份64M
log4j.appender.D.MaxBackupIndex=2
log4j.appender.D.Append = true
## 输出DEBUG级别以上的日志
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n

### 输出INFO级别以上的日志到文件中 ###
log4j.appender.I = org.apache.log4j.RollingFileAppender
#日志放到tomcat的logs目录中
log4j.appender.I.File = ../logs/project_name/info/log_info.log
log4j.appender.I.Append = true
#单个日志大小32M
log4j.appender.I.MaxFileSize=32MB
#总共备份512M
log4j.appender.I.MaxBackupIndex=16
## 输出INFO级别以上的日志
log4j.appender.I.Threshold = INFO
log4j.appender.I.layout = org.apache.log4j.PatternLayout
log4j.appender.I.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n

### 保存异常信息到单独文件
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
#日志放到tomcat的logs目录中
log4j.appender.E.File = ${catalina.home}/logs/project_name/error/log_error.log
log4j.appender.E.Append = true
#每天生成一个日志文件
log4j.appender.E.DatePattern = '.'yyyy-MM-dd
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{[yyyy-MM-dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n

额外的说明:这里使用了${catalina.home}来获取tomcat的路径,让日志输出到tomcat的logs文件目录下。

一些注意事项:低级别日志也会输出比它级别高的日志; 根据日期来设置日志的无法设置文件个数

补充:指定某个包下或类的日志级别

log4j.logger.包路径=日志级别
#例如:只打印spring的错误日志
 log4j.logger.org.springframework=ERROR

使用

import org.apache.log4j.Logger;

public class Demo {
    private static Logger logger = Logger.getLogger(Demo.class);

    public static void main(String[] args){
        logger.trace("------trace---追踪级别,一般不使用");
        logger.debug("------debug---调试级别");
        logger.info("-------info----普通级别");
        logger.warn("-------warn----警告级别");
        logger.error("------error---错误级别");
        logger.fatal("------fatal---严重级别,程序已经无法运行或应该停止的情况下");
        System.out.println("-------------------控制台输出--------------------------");
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,463评论 0 6
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,524评论 1 13
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,221评论 6 342
  • from:https://www.cnblogs.com/ITtangtang/p/3926665.html一、L...
    enshunyan阅读 8,581评论 0 0
  • 1 目录结构 /bin:脚本文件目录。 /common/lib:存放所有web项目都可以访问的公共jar包(使用C...
    SkTj阅读 9,165评论 0 3

友情链接更多精彩内容