使用 xml 配置 log4j 2
Configure log4j 2 using xml
我希望以三种方式显示日志消息:
- 在控制台上
- 在单个文件 log/logs/log.log 文件
- 在 log/logs/log-201610.log
类型的每月更改文件上
我写了这个配置(在这里使用其他问题和我找不到的几个来源):
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="basic" fileName="log/log.log">
<PatternLayout
pattern="%d{dd/MM/yy HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n" />
</File>
<RollingFile name="RollingFile" fileName="log/logs/app.log"
filePattern="log/logs/log-%d{yyyyMM}.log">
<PatternLayout>
<Pattern>"%d{HH:mm:ss,SSS} [%t] %-5level %logger{36} - %m%n"</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="ALL">
<AppenderRef ref="console" />
</Root>
<Logger name="sistema" level="ALL" additivity="true">
<AppenderRef ref="basic" />
</Logger>
<Logger name="sistemabis" level="ALL" additivity="true">
<AppenderRef ref="RollingFile" />
</Logger>
</Loggers>
</Configuration>
它似乎工作正常(没有给出错误),但我在 log/logs/app.log 中得到一个空文件。在我的文件 dependencies.xml 中我有这个:
<dependency org="org.apache.logging.log4j" name="log4j-api" rev="2.5" transitive="false"/>
<dependency org="org.apache.logging.log4j" name="log4j-core" rev="2.5" transitive="false"/>
但恐怕我还遗漏了一些东西。
最有可能的是,有一天我会删除单个完整文件的日志记录(因此我需要能够区分附加程序)。不需要尺寸限制。
我哪里错了?
编辑:根据我在评论中读到的内容,我进行了编辑以显示情况
根据评论,我修改了依赖项,并替换了配置文件中的一些行:
<Pattern>%d{dd/MM/yy HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
<Logger name="sistema" level="ALL" additivity="true"> <!-- name è il nome del pacchetto radice da cui prendere. -->
<AppenderRef ref="basic" />
<AppenderRef ref="RollingFile" />
</Logger>
它似乎工作正常。 11月1日,我会知道更多。
我希望以三种方式显示日志消息:
- 在控制台上
- 在单个文件 log/logs/log.log 文件
- 在 log/logs/log-201610.log
我写了这个配置(在这里使用其他问题和我找不到的几个来源):
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="basic" fileName="log/log.log">
<PatternLayout
pattern="%d{dd/MM/yy HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n" />
</File>
<RollingFile name="RollingFile" fileName="log/logs/app.log"
filePattern="log/logs/log-%d{yyyyMM}.log">
<PatternLayout>
<Pattern>"%d{HH:mm:ss,SSS} [%t] %-5level %logger{36} - %m%n"</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="ALL">
<AppenderRef ref="console" />
</Root>
<Logger name="sistema" level="ALL" additivity="true">
<AppenderRef ref="basic" />
</Logger>
<Logger name="sistemabis" level="ALL" additivity="true">
<AppenderRef ref="RollingFile" />
</Logger>
</Loggers>
</Configuration>
它似乎工作正常(没有给出错误),但我在 log/logs/app.log 中得到一个空文件。在我的文件 dependencies.xml 中我有这个:
<dependency org="org.apache.logging.log4j" name="log4j-api" rev="2.5" transitive="false"/>
<dependency org="org.apache.logging.log4j" name="log4j-core" rev="2.5" transitive="false"/>
但恐怕我还遗漏了一些东西。
最有可能的是,有一天我会删除单个完整文件的日志记录(因此我需要能够区分附加程序)。不需要尺寸限制。
我哪里错了?
编辑:根据我在评论中读到的内容,我进行了编辑以显示情况
根据评论,我修改了依赖项,并替换了配置文件中的一些行:
<Pattern>%d{dd/MM/yy HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
<Logger name="sistema" level="ALL" additivity="true"> <!-- name è il nome del pacchetto radice da cui prendere. -->
<AppenderRef ref="basic" />
<AppenderRef ref="RollingFile" />
</Logger>
它似乎工作正常。 11月1日,我会知道更多。