官方介绍和学习文档网址为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配置如下:

1   <context-param>
2     <param-name>log4jConfigLocation</param-name>
3     <param-value>/WEB-INF/conf/log4j2.xml</param-value>
4   </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后的片段如下:

1     <context-param>
2         <param-name>log4jContextName</param-name>
3         <param-value>star</param-value>
4     </context-param>
5
6     <context-param>
7         <param-name>log4jConfiguration</param-name>
8         <param-value>/WEB-INF/conf/log4j2.xml</param-value>
9     </context-param>

重新发布项目,竟然还是报错,不能正确的初始化和使用!

好吧,不卖关子了,这个问题最终查到了,属于最难查的问题范畴了,就是“我原以为”系列。

1 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2     xmlns="http://java.sun.com/xml/ns/javaee"
3     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
4     version="2.5">

看到了吧,web.xml中的Servlet的版本声明写错了,我在项目中实际使用的是Servlet 3.0。

将【2_5】改为【3_0】,将【2.5】改为【3.0】。

OK,可以使用性能指数级提升的Log4j2了。

详解log4j2(下) - Log4j2在WEB项目中配置相关推荐

  1. Spring-Spring Web项目中配置使用Log4j 2

    Log4j 2概述 为什么要使用Log4j 2 Spring中配置Log4j 2 添加Maven依赖 配置webxml 配置Log4j 2 使用Log4j 2 Log4j 2概述 请查看另外一篇博文L ...

  2. 不使用框架的web项目中配置log4j

    在不使用框架的时候,一般使用监听器或者Servlet来初始化log4j进行启动,这里我使用Servlet,代码入下: import java.io.File; import java.io.IOExc ...

  3. 在maven web项目中配置log4j打印日志及Mybatis sql语句

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wei542657623/article/details/51591736 1 添加依赖 在pom.x ...

  4. day63-webservice 08.在web项目中配置带有接口的webservice服务

    这个是配置带有接口的WebService的服务. http://localhost:8080/cxf-web-server/service 带有接口的实现类也给它做好了.jaxws:endpoint是 ...

  5. stm32项目平衡车详解(stm32F407)下

    stm32项目平衡车详解(stm32F407)下 本文章学习借鉴于创客学院团队,以表感谢.教学视频 B站学习地址 HC-SRO4 超声波测距避障功能开发 TSL1401 CCD摄像头实现小车巡线功能 ...

  6. Python实战项目:高血压项目详解(下)

    Python实战项目 高血压项目详解(下) 四.爬虫 数据来源      ⇒   有关高血压文章.文献.论文--外国网站  爬取翻译      ⇒   爬取文章(高血压--Hypertension)+ ...

  7. 详解微信小程序开发(项目从零开始)

    关注公众号 风色年代(itfantasycc) 280G前端&小程序资料随便拿! 详解微信小程序开发(项目从零开始) 一.序 微信小程序,估计大家都不陌生,现在应用场景特别多.今天就系统的介绍 ...

  8. Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库

    Linux系统中的软件管理详解(下) 5.软件仓库管理命令 a)dnf 命令: 管理软件仓库中的安装包 dnf repolist ##列出仓库信息clean all ##清除系统中已经加载的仓库缓存信 ...

  9. tomcat7修改内存 win_详解Windows下调整Tomcat启动参数的实现方法

    Windows下调整Tomcat启动参数 Tomcat默认可以使用的内存为128MB,对于访问数比较多.比较吃内存的应用来说,这是不够的.我们可以通过调整Java虚拟机的启动参数来增加Tomcat可使 ...

最新文章

  1. salt盐度与用户密码加密机制
  2. pycharm 如何跳转光标上次查看的位置 ctrl+alt+(←→)(前进和返回)
  3. iOS通用链接(Universal Links)突然点击无效的解决方案
  4. springmvc的主要功能_Spring MVC入门
  5. word格式:导出与导入(如何将一套格式样式应用于另一个文档)- 教程篇
  6. 谷歌 Compute Engine 的虚拟机曝0day未修复,可遭接管
  7. [计算机网络] P2P 协议
  8. 【评测】各种细胞治疗处理技术设备
  9. MySQL 快速入门之DATE_FORMAT() 函数详解
  10. 【测试面经】软件测试面试题大全,软件测试必问必背面试题,敢说会70%就可以轻松拿offer......
  11. Words Reciting 2016.5.3
  12. UVA 11549 calcular conundrum 计算机老谜题
  13. 【手绘漫画】面试必考之手撕双链表(解题模板和深度剖析),(LeetCode 707)
  14. 【Qt】Connect/Disconnect
  15. CodeForces - 1325C Ehab and Path-etic MEXs
  16. CentOS系统安装haproxy
  17. JavaScript数值方法:把变量转换为数值的方法:
  18. 立创开源 |ESP32-PICO-D4开发板
  19. CUDA 添加环境变量
  20. 排队叫号python编程_一套排队叫号程序开源

热门文章

  1. 通俗易懂,快速幂基本思想
  2. 形容等待时间长的句子_雅思听力该如何准确辨别句子结构?学会结构精听,雅思8分轻松get!...
  3. 精简JRE第一步 — 精简bin目录
  4. spring mysql 读写分离_如何利用Spring实现数据库读写分离?
  5. 朴素贝叶斯算法_机器学习第三篇:详解朴素贝叶斯算法
  6. pc receiver2.0.3_【工控笔记】WINCC 7.4与博途V15.1仿真软件S7PLCSIM V15 通信
  7. python sklearn 梯度下降法_(四)梯度下降法及其python实现
  8. mysql读取整张表_mysql 一个表里的信息是读取另一张表来的
  9. 地理防灾减灾思维导图_17张思维导图,让你轻松学好高中地理必修一
  10. python中面向对象编程简称为_Python基础-面向对象编程