log4j2设置日志文件输出到web目录下,亲测可用

请确认log4j-api:2.x,log4j-core:2.x,log4j-web:2.x都有并输出到web目录下

一、不同Servlet版本

     1)在web.xm中查看自己的Servlet版本:(通过web-app version元素来看)

      web.xml v2.3

<span style="font-size:14px;"><?xmlversion="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd"> 
  
<web-app> 
  
</web-app> </span>

     web.xml v2.4

<span style="font-size:14px;"><?xmlversion="1.0" encoding="UTF-8"?> 
<web-appid="WebApp_9" version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"  
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
  
</web-app> </span>

    web.xmlv2.5

<span style="font-size:14px;"><?xmlversion="1.0" encoding="UTF-8"?>   
<web-appxmlns="http://java.sun.com/xml/ns/javaee"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
version="2.5"> 
  
</web-app> </span>

    web.xmlv3.0

<span style="font-size:14px;"><?xmlversion="1.0" encoding="UTF-8"?> 
  
<web-app 
        version="3.0" 
        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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
  
</web-app> </span>

    2)Servlet3.0及以上Tomcat等服务器(需要Tomcat版本为7.0及以上)会自动加载log4j2以及在src路径(classpath)下的log4j2.xml文件,不过你也可以在web.xml中设置isLog4jAutoInitializationDisabled元素为true就可以禁止java服务器自动加载log4j2.

3)如果你设置了禁用自动加载或者你的Servlet版本为2.5(log4j2不支持2.4及以下版本),可以在web.xml添加listener元素:(值得注意的是你必须把这些listener和filter放在spring等一些servlet之前哦,也就是放在第一位)

<span style="font-size:14px;">    <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><!-- Servlet 3.0 w/disabled auto-initialization only; not supported in 2.5 -->
    </filter-mapping></span>

上述资料在http://logging.apache.org/log4j/2.x/manual/webapp.html中都有哦,小哥我只不过是找关键部分翻译了一下,

望你们笑纳。大笑大笑


二、配置log4j2中文件输出目录

只需在RollingFile、File等文件输出中设置${web:rootDir}就行了(原理是索引获得ServletContext上下文),如下:

<span style="font-size:14px;"><Appenders>
  <File name="ApplicationLog"fileName="${web:rootDir}/app.log"/>
</Appenders></span>

官方网站上有详细介绍:http://logging.apache.org/log4j/2.x/manual/lookups.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CuteXiaoKe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值