未生成日期日志文件

问题描述 投票:0回答:1

尝试生成带有日期的日志文件。

以下是我对

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>
java log4j
1个回答
0
投票

您的配置中的问题是您使用名称为 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>

通过此配置,您现在应该会看到每天创建的新日志文件,文件名中包含日期。

© www.soinside.com 2019 - 2024. All rights reserved.