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>


版权声明:本文为qq_25821067原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。