Log4j2在WEB项目中配置
2015-10-29 13:04
399 查看
最近决定在新WEB项目中使用新的日志系统Log4j2。
官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/
首先在WEB项目中引入以下几个jar包:
① log4j-api-2.4.1.jar
② log4j-core-2.4.1.jar
③ log4j-web-2.4.1.jar
按照以往的思路,简单修改web.xml中的Log配置如下:
然后启动项目,就出现了这个错误信息【ERROR StatusLogger No Log4j context configuration provided. This is very unusual】。
注意,默认的配置文件是log4j2.xml,而不是log4j.xml了。
按照网上的大神转来转去的一个Servlet 2.5的配置怎么试都报这个错误(没有关于3.0的配置介绍)。
没办法了,只有去官网仔细学习了。
我的项目使用Servlet 3.0,着重看了官网的MANUAL->Web Applications and JSPs->Servlet 3.0 and Newer这一段。
发现以下几个注意点:
一、Tomcat 7.0.43以前的版本,需要从catalina.properties的配置项【jarsToSkip】中屏蔽掉“log4j*.jar”这一选项。
二、context-param中关于配置文件的路径信息配置是【log4jConfiguration】而不是log4jConfigLocation。
三、context-param中需要增加配置信息【log4jContextName】。
四、Listener和Filter相关的配置在Servlet 3.0以上被log4j-web-2.4.1.jar“自动”的初始化了。
我的Tomcat版本是7.0.65(七系最新版,所以第一个问题不存在)。
重新配置web.xml后的片段如下:
重新发布项目,竟然还是报错,不能正确的初始化和使用!
好吧,不卖关子了,这个问题最终查到了,属于最难查的问题范畴了,就是“我原以为”系列。
看到了吧,web.xml中的Servlet的版本声明写错了,我在项目中实际使用的是Servlet 3.0。
将【2_5】改为【3_0】,将【2.5】改为【3.0】。
OK,可以使用性能指数级提升的Log4j2了。
官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/
首先在WEB项目中引入以下几个jar包:
① log4j-api-2.4.1.jar
② log4j-core-2.4.1.jar
③ log4j-web-2.4.1.jar
按照以往的思路,简单修改web.xml中的Log配置如下:
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/conf/log4j2.xml</param-value> </context-param>
然后启动项目,就出现了这个错误信息【ERROR StatusLogger No Log4j context configuration provided. This is very unusual】。
注意,默认的配置文件是log4j2.xml,而不是log4j.xml了。
按照网上的大神转来转去的一个Servlet 2.5的配置怎么试都报这个错误(没有关于3.0的配置介绍)。
没办法了,只有去官网仔细学习了。
我的项目使用Servlet 3.0,着重看了官网的MANUAL->Web Applications and JSPs->Servlet 3.0 and Newer这一段。
发现以下几个注意点:
一、Tomcat 7.0.43以前的版本,需要从catalina.properties的配置项【jarsToSkip】中屏蔽掉“log4j*.jar”这一选项。
二、context-param中关于配置文件的路径信息配置是【log4jConfiguration】而不是log4jConfigLocation。
三、context-param中需要增加配置信息【log4jContextName】。
四、Listener和Filter相关的配置在Servlet 3.0以上被log4j-web-2.4.1.jar“自动”的初始化了。
我的Tomcat版本是7.0.65(七系最新版,所以第一个问题不存在)。
重新配置web.xml后的片段如下:
<context-param> <param-name>log4jContextName</param-name> <param-value>star</param-value> </context-param> <context-param> <param-name>log4jConfiguration</param-name> <param-value>/WEB-INF/conf/log4j2.xml</param-value> </context-param>
重新发布项目,竟然还是报错,不能正确的初始化和使用!
好吧,不卖关子了,这个问题最终查到了,属于最难查的问题范畴了,就是“我原以为”系列。
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
看到了吧,web.xml中的Servlet的版本声明写错了,我在项目中实际使用的是Servlet 3.0。
将【2_5】改为【3_0】,将【2.5】改为【3.0】。
OK,可以使用性能指数级提升的Log4j2了。
相关文章推荐
- Java编程思想 - 第7章、复用类
- 删除文件后,磁盘可用空间并没有释放怎么办?
- Andriod控件PopupWindow嵌套Listview
- iOS笔试题
- 【转】Linux网络编程入门
- BarCode Reader SDK使用教程:如何从图像中读取条码
- OAuth 2.0 授权原理
- 【FastDev4Android框架开发】AndroidAnnnotations注入框架使用之注入组件Components(九)
- 河南第八届省赛(挑战密室)
- 解决Xcode7.1插件安装的办法
- javascript: detect mobile devices or browser
- KL Divergence between two multivariate normal distributions(使用了trace 和Expection的性质)
- IP|子网|子网掩码| 域名|DNS
- xampp里mysql数据库结构一直加载,如何在mysql页面创建自增id
- 5.7 Pairwise Swap
- c#读写App.config,ConfigurationManager.AppSettings 不生效的解决方法
- ubuntu kylin 中的一些个人使用技巧
- objective学习笔记1
- mysql 如何用一条SQL将一张表里的数据插入到另一张表 3个例子
- Oracle级联递归查询