gpt4 book ai didi

java - 每次程序执行如何在 log4j 中创建日志文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:17 26 4
gpt4 key购买 nike

我目前正在使用 log4j 中的 DailyRollingFileAppender 类来执行每日日志文件附加操作,但我希望按以下格式分隔日志文件:

DATA.log.<date>_<time>_<random_#>

这应该在每次程序执行时完成一次,所以我最终会得到类似...

DATA.log.2011-01-13_12-46-38_<26>
DATA.log.2011-01-13_12-46-38_<79>
DATA.log.2011-01-13_12-46-38_<590>

来自不同环境的不同日志文件可以汇集在一起​​。

有没有办法在不扩展 FileAppender 类的情况下做到这一点?至少,有没有办法做到:

DATA.log.<date>_<time>_<sequential_#>.log

谢谢

编辑:我已经在使用 DailyRollingFileAppender 来获取类似 DATA.log.2011-01-13 的内容。我想知道如何在每次程序执行后(或每次程序执行前)让日志文件翻转并在末尾添加一个随机数字字符串。

最佳答案

看看:Setting a log file name to include current date in Log4j

编辑:将此类添加到您的项目中,并将其用作附加程序:

import java.util.Random;

import org.apache.log4j.DailyRollingFileAppender;

public class MyAppender extends DailyRollingFileAppender {
@Override
public void setFile(String fileName) {
if (fileName.indexOf("%rnd") >= 0) {
Random r = new Random();
fileName = fileName.replaceAll("%rnd", Integer.toString(r.nextInt()));
}
super.setFile(fileName);
}
}

然后只需将您的 appender 的文件名设置为类似:filename.%rnd.log

log4j.appender.R=MyAppender.MyAppender
log4j.appender.R.File=.\\test.%rnd.log

关于java - 每次程序执行如何在 log4j 中创建日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com