log4j 每次运行生成新文件 功能

博客介绍了如何在Java开发中,通过自定义类PerRunRollingFileAppender来实现在每次运行时生成新的log文件,避免日志混杂。作者针对log4j配置无法满足需求的问题,提供了解决方案,包括文件重命名和添加前缀以区分不同测试类的日志文件。代码示例和配置文件细节也在文中给出。
摘要由CSDN通过智能技术生成

开发中我有个需求就是,每次运行都生成新的log文件,因为我主要跑的测试,有些数据想比对还不想都放在一个文件中,这样查找起来不方便。在网上找了些发现log4j配置上没有办法满足我的需求,所以就写了个自定义类PerRunRollingFileAppender。

大致逻辑为:

读取配置文件中你配置文件的路径,遍历这个路径如果文件已经存在就重命名生成新的文件,哦对了,我这里还有在配置文件名前加了个前缀PerRunRollingFileAppender.LoggerNamePrefix,这样你可以在使用相同配置的时候,让每个测试类中生成的日志文件名不同。

只要在启动PropertyConfigurator.configure("./conf/log4j_default.properties");之前,配置PerRunRollingFileAppender.LoggerNamePrefix值就可以了。

note:有参考了他人代码,附上地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现log4j每分钟生成一个日志文件,可以使用log4j的TimeBasedRollingPolicy。具体步骤如下: 1. 在log4j.properties文件中添加以下配置: ```properties log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=/path/to/log/file/logfile.log log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy log4j.appender.file.RollingPolicy.FileNamePattern=/path/to/log/file/logfile.%d{yyyyMMdd-HHmm}.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %p %t %c - %m%n ``` 2. 解释配置: - log4j.appender.file:指定日志输出到文件。 - log4j.appender.file.File:指定日志输出文件的路径和名称。 - log4j.appender.file.RollingPolicy:指定日志文件滚动策略,即按时间滚动。 - log4j.appender.file.RollingPolicy.FileNamePattern:指定日志文件名的格式,%d{yyyyMMdd-HHmm}表示每分钟生成一个文件。 - log4j.appender.file.layout:指定日志输出格式。 - log4j.appender.file.layout.ConversionPattern:指定日志输出内容的格式。 3. 编写Java代码,使用log4j进行日志记录。 ```java import org.apache.log4j.Logger; public class MyClass { private static final Logger logger = Logger.getLogger(MyClass.class); public static void main(String[] args) { logger.info("Hello, world!"); } } ``` 这样,每分钟都会生成一个的日志文件,日志内容按照指定格式输出到文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值