0

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

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

我尝试使用DailyRollingFileAppender并且能够添加时间戳,但它会在“.log”之后附加时间戳,这导致 accesslogs.log.2012-10-31-02-39 并且 Maxsize 属性也是 DailyRollingFileAppender 中的任务
那么有没有其他方法可以将时间戳添加到日志文件中。

下面是 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>

任何帮助将非常感激。

谢谢

4

1 回答 1

2

开箱即用的 Log4J 无法做到这一点。这是 Log4J 源代码的一个片段:

String datedFilename = fileName+sdf.format(now);

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

不幸的是,按照DailyRollingFileAppender设计的方式,您无法有效地对其进行子类化以自定义此行为,因此我被引导相信,不幸的是,您的问题的答案是“否”。

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

已编辑(五个月后)...

如果您使用 Log4J Extras(由 Log4J 社区提供),则可以执行此操作。看看TimeBasedRollingPolicy。不过,您最终将使用与 不同的附加程序DailyRollingFileAppender

于 2012-11-01T03:05:41.173 回答