spring +log4j 配置日志按天,小时滚动输出切成文件
Posted 健康平安的活着
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring +log4j 配置日志按天,小时滚动输出切成文件相关的知识,希望对你有一定的参考价值。
一 log4j的命令解析
1.1 案例配置解析
log4j.rootLogger=INFO,file2,file3
#file2----------
log4j.appender.file2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file2.Append=true
log4j.appender.file2.DatePattern='_' yyyy-MM-dd-HH
log4j.appender.file2.File=H:/logs/message2.log
log4j.appender.file2.Threshold=INFO
log4j.appender.file2.Encoding=UTF-8
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.ConversionPattern=<%d{yyyy-MM-dd HH\\:mm\\:ss\\:SSS} [%p]> %X{module}-%X{random}: %m%n
命令解析:
1 log4j.rootLogger=INFO,file2,file3 中的INFO 是日志级别而后面的 file2,file3 就是制定的输出文件
2. log4j.appender.file2=org.apache.log4j.DailyRollingFileAppender 这一行配置就是log4j每天一个日志文件
3.log4j.appender.file3.Append=true 日志文件是否追加
4.log4j.appender.file3.DatePattern='_' yyyy-MM-dd-HH-mm 这里就是定义的时间格式,如果时间定义到分钟(mm)就是每分钟生成一个日志文件,而这里定义的这个格式就是日志名后缀。
DatePattern中配置的'_'yyyy-MM-dd-HH-mm'.log' 意思是根据这个时间来定时生成文件,并且把'_'yyyy-MM-dd-HH-mm'.log'附加在原文件的后面,即:logcase_'yyyy-MM-dd-HH-mm'.log', 由于定义到mm所以就每分钟生成一次。
5.log4j.appender.file3.File=H:/logs/message3.log 这里定义了日志路径
6. log4j.appender.file2.Threshold=INFO 日志输出级别
7.log4j.appender.file3.Encoding=UTF-8 日志编码
8.log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file3.layout.ConversionPattern=<%d{yyyy-MM-dd HH\\:mm\\:ss\\:SSS} [%p]>[Galaxy-IRS] %X{module}-%X{random}: %m%n
定义的日志格式
9.每个生成的日志最大是1KB,允许生成的最多文件数量是3,即是文件数量达到上限3个以后,则覆盖之前的文件。
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
1.2 按自定义时间生成日志
1、log4j.appender.file3.DatePattern='_' yyyy-MM-dd-HH-mm 每分钟生成一个日志文件
2、log4j.appender.file3.DatePattern='_' yyyy-MM-dd-HH 每小时生成一个日志文件
3、log4j.appender.file3.DatePattern='_' yyyy-MM-dd 每天生成一个日志文件
二 log4j的配置案例
https://www.cnblogs.com/wang3680/p/7690607.html
2.1 测试代码
1.测试代码
package cn.zhoucy.test;
import org.apache.log4j.Logger;
public class TestLog4j {
private static Logger logger=Logger.getLogger(TestLog4j.class); // 获取logger实例
public static void main(String[] args) {
logger.debug("调试debug信息");
logger.info("普通Info信息");
logger.warn("警告warn信息");
logger.error("error信息");
logger.fatal("严重错误fatal信息");
}
}
2.log4j的日志文件
log4j.rootLogger=DEBUG, Console ,File ,DailyRollingFile ,RollingFile
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#File
log4j.appender.File = org.apache.log4j.FileAppender
log4j.appender.File.File = E://File.log
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
#DailyRollingFile
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = E://DailyRollingFile.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
#RollingFile
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = E://RollingFile.log
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
由log4j的配置文件:
Console 和File是常规的控制台和文件输出,
而DailyRollingFile 和RollingFile分别是按天生成,和按日志文件指定大小生成文件。运行后,控制台输出如下:
2.2 每天生成一个日志文件
#DailyRollingFile
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = E://DailyRollingFile.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
解释:
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender 就表明是每天生成一个日志文件。
log4j.appender.DailyRollingFile.File = E://DailyRollingFile.log 表明生成的日志文件名称,不过要注意,这里表示的是当天的文件名字,历史文件会以日期结尾。
2.3 每天生成一个日志文件
有的时候,会需要指定文件大小,比如说,日志文件生成到了1M,就新生成一个日志文件,同时可以指定一共可以生成的最大文件数。配置文件如下:
#RollingFile
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = E://RollingFile.log
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
关键的就是第3行和第4行:
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
表示的是,每个生成的日志最大是1KB,允许生成的最多文件数量是3,即是文件数量达到上限3个以后,则覆盖之前的文件。
以上是关于spring +log4j 配置日志按天,小时滚动输出切成文件的主要内容,如果未能解决你的问题,请参考以下文章