为什么Log4j2不将日志写入文件?

时间:2020-08-26 19:52:43

标签: java log4j2

这是我的log4j2.xmlpath to file-src/com/tarasiuk/task_01/log/dataLogger.log的配置:

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

    <Properties>
        <Property name="FORMAT_MESSAGE">
            %d{YYYY-MM-dd HH:mm:ss} [%t] Level:%-7p Class:%c{1}:%-5L - %msg%n
        </Property>

        <Property name="LOG_FILE">
            src/com/tarasiuk/task_01/log/dataLogger.log
        </Property>
    </Properties>

    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${FORMAT_MESSAGE}" />
        </Console>

        <File name="File" fileName="${LOG_FILE}" append="false">
            <PatternLayout pattern="${FORMAT_MESSAGE}" />
        </File>
    </Appenders>

    <Loggers>
        <Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false">
            <AppenderRef ref="File" />
        </Logger>

        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

我的项目结构:
enter image description here

我做什么:

  1. path更改为将文件从src/com/tarasiuk/task_01/log/dataLogger.log更改为com/tarasiuk/task_01/log/dataLogger.log-没有结果。
  2. level中的<Logger>debug更改为info-没有结果。

日志输出到控制台-好的。但是为什么Log4j2不写日志to a file

1 个答案:

答案 0 :(得分:2)

尝试使用以下附加程序。

在您的情况下,可能无法从属性获取路径,因此我只提供了名称。 因此,它将自动在与您的应用程序相同的路径上创建文件。

<Appenders>
    <File name="dataLogger" fileName="dataLogger.log" append="false">
       <PatternLayout pattern="%level - %m%n"/>
    </File>
    <Console name="STDOUT" target="SYSTEM_OUT">
      <PatternLayout pattern="%level - %m%n"/>
    </Console>
  </Appenders>

这将为您提供帮助。