关闭

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

标签: webjavaservletlog4j
10509人阅读 评论(0) 收藏 举报
分类:

请确认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

3
0
查看评论

Weblogic创建一个域,部署web项目,启动时报错:org.apache.logging.log4j.web.Log4jServletContextListener java.lang.Class

weblogic部署web项目时,激活报错如下 也会报这种错:(Unsupported major.minor version 51.0) 产生原因: 用jdk7编译的class文件放到基于jdk6运行在weblogic的domain之中,就会报这个错。 也就是说创建的新do...
  • xianjie0318
  • xianjie0318
  • 2017-09-07 11:08
  • 609

在web应用中使用Log4j 2

Using Log4j 2 inWeb Applications(在web应用中使用Log4j 2) 来源:http://logging.apache.org/log4j/2.x/manual/webapp.html在JavaEE环境中使用log4j或者其它任何日志框架时,需要特别小心。当...
  • sushengmiyan
  • sushengmiyan
  • 2016-08-31 23:37
  • 3407

java.lang.NoClassDefFoundError: org/apache/log4j/LogManager

开发自己的淘宝客网站(Tomcat7 spring 2.5  struts2 2.3)的时候,配置spring的log4j日志,死活不能运行,导致项目在tomcat7中运行的时候一直提示错误,版本也更换了几次。 因为刚刚开始的时候担心是不是版本不兼容,后来发现不是这个问题,因为程序org...
  • thisisvoa
  • thisisvoa
  • 2012-12-15 19:42
  • 15575

log4j2的log输出到tomcat/logs目录下及使用

一、环境配置 log4j2、tomcat7、maven工程、springMVC架构 二、log4j2.xml配置 如图中1所示要配置成${sys:catalina.home}、而配置成${catalina.home}是不可以的。2中的配置是说只在alipay_logger....
  • honghailiang888
  • honghailiang888
  • 2015-12-21 10:13
  • 5760

log4j2自定义Appender(输出到文件/RPC服务中)

声明:原创文章,转载请注明出处。http://www.jianshu.com/u/e02df63eaa87 1、背景 虽然log4j很强大,可以将日志输出到文件、DB、ES等。但是有时候确难免完全适合自己,此时我们就需要自定义Appender,使日志输出到指定的位置上。 本文,将通过两个例子说...
  • z69183787
  • z69183787
  • 2017-08-08 16:51
  • 1011

Log4j 2 同时输出日志到控制台和文件

目标 Log4j 2 同时输出日志到控制台和文件。方案给同一个 logger 绑定一个 console appender 和一个 file appender。即类似于这样的形式:rootLogger.appenderRef.stdout.ref = STDOUT rootLogger.ap...
  • u013614126
  • u013614126
  • 2017-05-28 12:22
  • 3113

Log4j2 日志分级别输出到不同文件

Log4j2 日志按级别输出到不同文件 在生产环境中,可以按日志信息级别,输出到不同的文件中,如生成 info.log,warn.log,error.log 等; 这样的功能可以通过在 log42.xml 中配置Filter来实现; 一个示例的实现如下:  log4j2.xml...
  • Al_assad
  • Al_assad
  • 2017-07-30 00:41
  • 2868

log4j2 按照日志级别将日志输出到不同的文件

%d{yyyy-MM-dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n         logs/app.log        ...
  • seven_zhao
  • seven_zhao
  • 2014-12-26 15:26
  • 16305

log4j2 在java web中的使用

log4j2 在java web中的使用
  • xxc1605629895
  • xxc1605629895
  • 2017-02-12 22:15
  • 2817

SpringMVC使用maven配置SLF4J和Log4J2

本篇的重点在于LOG4J2,它与LOG4J 第一版区别很大。我将教程放在后面,将一些知识放在前面,所以想看教程的直接拉到后面即可。理论知识关于两版的区别两版的不同,直接的表现是在Maven仓库中log4j 表示第一版,org.apache.logging.log4j 表示第二版。另外应当注意: Lo...
  • NEWCIH
  • NEWCIH
  • 2017-07-27 19:30
  • 2300
    打赏页面
      感谢大家对我博客的支持,您的每份帮助都是我前进的动力!PS:付打赏的同时别忘记留下你的联系方式哟
      支付宝

      微信
    个人资料
    • 访问:56807次
    • 积分:1138
    • 等级:
    • 排名:千里之外
    • 原创:47篇
    • 转载:0篇
    • 译文:0篇
    • 评论:65条
    博客专栏
    文章分类
    最新评论