我正在尝试创建一个日志文件,其中包含一个附加到文件名的日期,例如merge
。
这是我当前的log4j.xml。
application.log.yyyymmdd
它不会创建<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="application.log" />
<param name="DatePattern" value=".yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"/>
</layout>
</appender>
<!-- Root Logger -->
<root>
<priority value="debug" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
,而只会生成application.log.yyyymmdd
。
还有另一种方法只使用 log4j.xml来实现这个目标吗?
答案 0 :(得分:1)
日志文件每天推出,当天的日志文件没有日期。假设当前日期是2015-05-06,并且在午夜,一旦它通过23:59:59,log4j将application.log
备份到application.log.2015-05-06
并且application.log
文件变为登录
您应该知道application.log
是当天的日志文件,因此它没有数据后缀并不重要。
以下是我现在使用的内容,它每天都会滚动一个新文件,并将日志文件保留30天。
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/data/log/logging.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>