2016-02-08 71 views
0

我想在我的Servlet 3.0 Web應用程序中使用Log4j2。即使按照官方文檔配置完所有內容後,我也無法看到日誌。在Servlet 3.0應用程序中使用log4j2

這是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 

    <display-name>myapplication</display-name> 

    <context-param> 
     <param-name>isLog4jAutoInitializationDisabled</param-name> 
     <param-value>true</param-value> 
    </context-param> 
    <context-param> 
     <param-name>isLog4jContextSelectorNamed</param-name> 
     <param-value>true</param-value> 
    </context-param> 

    <context-param> 
     <param-name>log4jConfiguration</param-name> 
     <param-value>log4j2.xml</param-value> 
    </context-param> 

    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

我已經放在log4j2.xml文件中的WEB-INF/classes中:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="INFO"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> 
     </Console> 
     <File name="MyFile" fileName="myapplication.log" immediateFlush="true" append="false"> 
      <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </File> 
    </Appenders> 
    <Loggers> 
     <Root level="info"> 
      <AppenderRef ref="Console" /> 
      <AppenderRef ref="MyFile"/> 
     </Root> 
    </Loggers> 
</Configuration> 

這是我打電話在我的班級記錄儀:

final static Logger LOGGER = Logger.getLogger(MyClass.class); 
LOGGER.info("Logging works"); 

請告訴我,我做錯了。我甚至嘗試硬編碼到log4j2.xml的直接路徑,但仍然無法正常工作。

回答

0

With Servlet 3.0,請將isLog4jAutoInitializationDisabled設置爲false,或刪除它,它應該工作。

如果你保持它真正,你將有額外的步驟和東西添加到web.xml

一旦禁用自動初始化,你必須初始化Log4j的,你 將一個Servlet 2.5網絡應用。

而且

如果你是在一個Servlet 2.5的Web應用程序中使用Log4j的,或者如果你 已經禁用了自動初始化與 isLog4jAutoInitializationDisabled環境參數,你必須 配置Log4jServletContextListener和Log4jServletFilter在 部署描述符或以編程方式。

請看這裏Log4j2 and Servlet 3.0

相關問題