1. 程式人生 > >servlet2.5+Spring5 springMVC5 +Log4J2配置

servlet2.5+Spring5 springMVC5 +Log4J2配置

搞了幾乎一天。因為專案用到了spring5,配置Log4J的時候發現spring5少了Log4jConfigListener這個監聽器,導致在web.xml裡面不能啟動log4j,官方建議用log4j2。用的是servlet2.5,所以就需要在web.xml中配置監聽器。如果是servlet3的話,直接匯入log4J2的jar包就行了,不需要再在web.xml中配置了,因為會自動啟動的。

log4J2需要的jar包有3個:log4j-core 、 log4j-api、log4j-web。具體的去http://logging.apache.org/log4j/2.0/download.html這個網址下載吧。

再提醒一次,如果專案是servlet3以上,只需要把這3個jar包匯入專案,再弄個配置檔案放到專案程式碼根目錄就行了。如果你的專案是servlet2.5還需要配置web.xml,配置如下:

<!-- log4j2配置 -->
	<context-param>
     <param-name>log4jConfiguration</param-name>
     <param-value>classpath:resource/log4j2.xml</param-value>
 </context-param>
	<listener>
    <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener
    </listener-class>
	</listener>
	<filter>
		<filter-name>log4jServletFilter</filter-name>
	    <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class>
    </filter>
	<filter-mapping>
	    <filter-name>log4jServletFilter</filter-name>
	    <url-pattern>/*</url-pattern>
	    <dispatcher>REQUEST</dispatcher>
	    <dispatcher>FORWARD</dispatcher>
	    <dispatcher>INCLUDE</dispatcher>
	    <dispatcher>ERROR</dispatcher>
	    <dispatcher>ASYNC</dispatcher> 
	</filter-mapping>

在controller中使用如下:

Logger logger = LogManager.getLogger(UserController.class.getName());

匯入的包是下面這兩個路徑。

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

具體的文件,在官方文件有詳細介紹。多閱讀官方文件。http://logging.apache.org/log4j/2.0/manual/webapp.html

配置檔案log4j2.xml:(下面這個是在官網上找出來的,可以使用)

<Configuration status="WARN" name="ServletTest">
 
    <Appenders>
        <Servlet name="Servlet">
            <PatternLayout pattern="%m%n%ex{none}"/>
        </Servlet>
    </Appenders>
 
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Servlet"/>
        </Root>
    </Loggers>
 
</Configuration>