我想将时间戳添加到日志文件中,如下所示。
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>
非常感谢任何帮助。
由于
答案 0 :(得分:2)
你无法使用Log4J开箱即用。这是Log4J源代码的片段:
String datedFilename = fileName+sdf.format(now);
这就是Log4J构建文件名的方式:格式化日期对象并将其附加到文件名。
不幸的是,DailyRollingFileAppender
的设计方式,你不能有效地对它进行子类化以便自定义这种行为,所以我不得不相信,不幸的是,你的问题的答案是“不”。
(除非您开发自己的FileAppender
)
已编辑(五个月后)......
如果您使用Log4J Extras(由Log4J社区提供),则可以执行此操作。看看TimeBasedRollingPolicy。不过,您最终会使用与DailyRollingFileAppender
不同的appender。