您现在的位置是:首页 > 文章详情

log4j日志文件配置

日期:2019-09-27点击:488

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("-------------------控制台输出--------------------------"); } } 
原文链接:https://yq.aliyun.com/articles/719660
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章