【发布时间】:2021-12-15 12:02:27
【问题描述】:
我已将 log4j 从 1.2.17 升级到 2.16.0。因此我不得不重写我的log4j.xml 并将其重命名为log4j2.xml。我已经进行了必要的更改。但是,似乎我的新配置未加载。我尝试通过web.xml 来配置 log4j:
<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>classpath:log4j2.xml</param-value>
</context-param>
和-Dlog4j2.configurationFile。两种方法都失败了,我在 mylog.log 文件中没有得到任何日志。但是,在本地运行应用程序时,控制台会显示日志。
这是我的log4j2.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="trace">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%-5p %c{1} - %m%n"/>
</Console>
<RollingFile name="DAILY_LOG" fileName="${catalina.base}/logs/mylog.log"
filePattern="${catalina.base}/logs/mylog.log.%d{yyyy-MM-dd}">
<PatternLayout pattern="%d %-5p [%c] [%X{sid}:%X{uid}] %m%n "/>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<!-- Limit the org.springframework category to INFO as its DEBUG is verbose -->
<Logger name="org.springframework" level="INFO"/>
<!-- Limit the org.hibernate category to INFO as its DEBUG is verbose -->
<Logger name="org.hibernate" level="INFO"/>
<!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
<Logger name="org.apache" level="INFO"/>
<Logger name="org.myproject" level="INFO"/>
<!-- Root Logger -->
<Root level="INFO">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="DAILY_LOG"/>
</Root>
</Loggers>
</Configuration>
我尝试使用:-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=trace 来调试 log4j 配置。我注意到 LoggerContext 实例创建良好,并且所有列出的记录器都构建良好。
我想知道我的配置是否写错了。有人可以向我确认或否认这一点。
【问题讨论】: