gpt4 book ai didi

java - 使用日期和时间戳为每次运行创建 log4j 日志文件

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

所有,似乎这个问题已发布多次,但我仍然没有找到适合我的问题的解决方案。我提到了 thisthis,但它不起作用。

根据下面的属性文件,每次都会创建一个包含日期的新文件但是我想创建一个具有以下格式的日志文件并且每次执行我的应用程序时都需要生成,

logFileName_MM_DD_YY-HH_MM_SS.log(或) logFileName.log_YYYY_MM_DD_HH_MM_SS

# Root logger option
log4j.rootLogger=INFO,file,stdout

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=.\\logs\\AppLog.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

最佳答案

编辑 - 删除了 DailyFileAppender 建议。

您可以创建自己的 FileAppender,如下所示:

public class NewFileOnRebootAppender extends FileAppender {

public NewFileOnRebootAppender() {
}

@Override
public void setFile(String file) {
super.setFile(prependDate(file));
}

private static String prependDate(String filename) {
return System.currentTimeMillis() + "_" + filename;
}
}

然后像这样使用它:

log4j.appender.fileOnReboot=yourPackage.NewFileOnRebootAppender
log4j.appender.fileOnReboot.File=appLogOnReboot.log
log4j.appender.fileOnReboot.layout=org.apache.log4j.PatternLayout
log4j.appender.fileOnReboot.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

文件的命名并不完美,但你明白了..

关于java - 使用日期和时间戳为每次运行创建 log4j 日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31360185/

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