一尘不染

Log4j中带有日期的文件名

tomcat

我正在尝试将当前日期附加到log4j日志文件中。所以会是这样的:

myApp-2011-01-07.log

事实是,我不想使用DailyRollingFileAppender。原因是每天将运行另一个脚本,该脚本将备份logs文件夹中的所有内容。它在Tomcat5.5下运行。

在log4j中可以吗?


阅读 622

收藏
2020-06-16

共1个答案

一尘不染

我认为您可以在代码中设置系统属性以包含当前日期:

static{
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    System.setProperty("current.date", dateFormat.format(new Date()));
}

然后,在log4j.xml文件中,当在追加程序中指定日志文件名时,可以使用system属性:

<appender name="MYAPPENDER" class="org.apache.log4j.FileAppender">
    <param name="File" value="${user.home}/myApp-${current.date}.log" />

预计到现在,您可能必须使用静态初始化程序来设置系统属性,以确保在配置log4j之前已设置该属性。

2020-06-16