尝试生成带有日期的日志文件。
以下是我对
xml
的 log4j
配置。从下面的配置来看,它仅生成 app.log
,但我期待 app.log.2020-3-1
。
有人可以帮我看看我的配置有什么问题吗?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="DEBUG" />
<param name="append" value="true" />
<param name="File" value="logs/app.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<priority value="DEBUG"/>
<appender-ref ref="consoleAppender" />
<appender-ref ref="file" />
</root>
</log4j:configuration>
您的配置中的问题是您使用名称为 DatePattern 的 param 标记,这不是
DailyRollingFileAppender
的有效参数。正确的参数名称是 fileNamePattern
,值应该是包含文件名日期部分模式的字符串。例如,要每天创建一个新的日志文件,您可以使用以下值:
fileNamePattern=logs/app-%d{yyyy-MM-dd}.log
这是具有正确参数名称的完整配置:
XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM
"log4j.dtd">
<log4j:configuration
xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<param
name="Target"
value="System.out" />
<layout
class="org.apache.log4j.PatternLayout">
<param
name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender
name="file"
class="org.apache.log4j.DailyRollingFileAppender">
<param
name="Threshold"
value="DEBUG" />
<param
name="append"
value="true" />
<param
name="File"
value="logs/app.log" />
<param name="fileNamePattern" value="logs/app-%d{yyyy-MM-dd}.log" />
<layout class="org.apache.log4j.PatternLayout">
<param
name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<priority
value="DEBUG"/>
<appender-ref
ref="consoleAppender" />
<appender-ref ref="file" />
</root>
</log4j:configuration>
通过此配置,您现在应该会看到每天创建的新日志文件,文件名中包含日期。