Web应用程序中的Log4j2配置

时间:2014-01-27 05:21:32

标签: java tomcat logging configuration log4j2

我的类路径中有log4j2 jar文件。下面是我的Log4j2.xml。我想将日志写入我的本地文件“G:/test/apps.log”,但我有两个问题:

  1. 运行Web应用程序时,输出仅打印到控制台而不打印到文件。
  2. 我看到一些答案建议将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>
    

1 个答案:

答案 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的位置,