我的类路径中有log4j2 jar文件。下面是我的Log4j2.xml。我想将日志写入我的本地文件“G:/test/apps.log”,但我有两个问题:
我看到一些答案建议将Log4j2.xml放在WEB-INF/classes
中。但是,当我进行干净的构建时,文件将被删除,那么我应该在哪里放置配置文件?
注意:我使用Tomcat:7.0.34,Servlet 3.我删除了Cantalina属性中Log4J的引用。
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn">
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="MyFile" fileName="G:/test/apps.log">
<PatternLayout pattern="%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</appenders>
<loggers>
<root level="trace">
<appender-ref ref="MyFile" level="trace" additivity="true"/>
</root>
</loggers>
</configuration>
答案 0 :(得分:3)
您需要类路径中的log4j-api-2.0和log4j-core-2.0 jar文件。 如果找不到核心jar,api jar将回退到SimpleLogger(控制台)实现。
通过将配置更改为<configuration status="trace">
,您可以看到log4j2内部日志记录,可能有助于解决配置问题。 (这也需要log4j-core-2.0 jar。)
log4j2.xml文件可以在类路径中,也可以指定具有系统属性-Dlog4j.configurationFile=/path/to/log4j2.xml
的位置,