【问题标题】:log4j2 not writing to the log file with rollingFile appenderslog4j2 不使用 rollingFile 附加程序写入日志文件
【发布时间】:2016-05-03 06:16:23
【问题描述】:

我是使用 log4j2 的新手

我正在尝试配置 xml 以使用和附加程序将日志发送到日志文件中。好吧,附加程序工作正常。我想使用 appender 以便它每天清除日志文件,但是当它第一次创建日志文件时,它不会将任何日志消息写入由创建的文件中,所以我来这里寻求一些建议

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="FATAL" >

<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="${pattern}" />
    </Console>
    
    <RollingFile name="rollingfile" fileName="rolling.log"
    filePattern="rolling-%d{MM-dd-yyyy}.log">
        <PatternLayout pattern="${pattern}" />
        <Policies>
              <TimeBasedTriggeringPolicy interval="1" modulate="true" />
              <SizeBasedTriggeringPolicy size="10 MB" />
        </Policies>
    </RollingFile>
    
    <File name="file" fileName="test2.log">
        <PatternLayout pattern="${pattern}" />
    </File>     
    
</Appenders>


<Loggers>   
    <Root level="trace" >
        <AppenderRef ref="Console" />
        <AppenderRef ref="rollingfile" />
        <AppenderRef ref="file" />
    </Root>
</Loggers>
</Configuration>

【问题讨论】:

  • 哦,是的,我只是通过仔细检查才弄清楚:/ 对此感到抱歉,但是在我用与“rollingfile”相同的名称更正它之后,日志文件仍然是空的,我刷新了我的页面尝试了多少次生成日志记录,对“文件”附加程序很好,但“滚动文件”仍然是空的:/我不知道为什么

标签: xml log4j2


【解决方案1】:

你有AppenderRef="rolling",但是你的 Appender 被命名为“rollingfile”。这些需要匹配。

另外,log4j 可能会发出配置存在问题的警告。我建议您在配置开始时指定 &lt;Configuration status="WARN" &gt; 而不是 FATAL,以便您可以看到这些警告。

可能需要指定${sys:pattern} 才能读取系统属性。代替${pattern} 变量,首先尝试像%d %p [%t] %m%n 这样的显式模式。

【讨论】:

  • 哦,是的,我只是通过仔细检查才弄清楚:/ 对此感到抱歉,但是在我用与“rollingfile”相同的名称更正它之后,日志文件仍然是空的,我刷新了我的页面尝试了多少次生成日志记录,对“文件”附加程序很好,但“滚动文件”仍然是空的:/我不知道为什么
  • 更新:使用sys:前缀进行系统属性查找。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 2018-06-28
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多