Log4j 如何将时间戳添加到日志文件名

Log4j 如何将时间戳添加到日志文件名,log4j,Log4j,我想向日志文件添加时间戳,如下所示 accesslogs.2012-10-31-02-39.log 我尝试使用DailRollingFileAppender并能够添加时间戳,但它将时间戳附加在“.log”之后,从而导致accesslogs.log.2012-10-31-02-39和DailRollingFileAppender中的Maxsize属性也丢失 所以,有没有其他方法可以将时间戳添加到日志文件中 下面是log4j.xml的代码片段 <appender name="roll"

我想向日志文件添加时间戳,如下所示

accesslogs.2012-10-31-02-39.log

我尝试使用DailRollingFileAppender并能够添加时间戳,但它将时间戳附加在“.log”之后,从而导致accesslogs.log.2012-10-31-02-39和DailRollingFileAppender中的Maxsize属性也丢失
所以,有没有其他方法可以将时间戳添加到日志文件中

下面是log4j.xml的代码片段

    <appender name="roll" class="org.apache.log4j.DailyRollingFileAppender">
           <param name="DatePattern" value="'.'yyyy-MM-dd-hh-mm'.log'" />
           <param name="File" value="C:\\Users\\sharmag\\logsfile.log" />    
           <layout class="org.apache.log4j.PatternLayout"> 
              <param name="ConversionPattern" value="%d %-5p (%15F:%L) %3x - %m (%c)%n"/>
          </layout>
    </appender>

任何帮助都将不胜感激


谢谢

使用现成的Log4J无法完成此操作。下面是Log4J源代码的一个片段:

String datedFilename=fileName+sdf.format(现在)

这就是Log4J构建文件名的方式:格式化日期对象并将其附加到文件名

不幸的是,按照
DailRollingFileAppender
的设计方式,您无法有效地对其进行子类化以定制此行为,因此我认为,不幸的是,您的问题的答案是“否”

(除非您开发自己的
FileAppender
实现)

编辑(五个月后)

如果您使用Log4J附加组件(由Log4J社区提供),则可以这样做。看一看。不过,您最终将使用不同于
dailrollingfileappender
的appender