最近决定在新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配置如下:

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在WEB项目中配置的更多相关文章

  1. Log4j2在WEB项目中配置

    最近决定在新WEB项目中使用新的日志系统Log4j2. 官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/ 首先在WEB项目中引入以下几个jar包: ① ...

  2. web项目中配置多个数据源

    web项目中配置多个数据源 spring + mybatis 多数据源配置有两种解决方案 1.配置多个不同的数据源,使用一个sessionFactory,在业务逻辑使用的时候自动切换到不同的数据源,  ...

  3. 如何在web项目中配置Spring的Ioc容器

    在web项目中配置Spring的Ioc容器其实就是创建web应用的上下文(WebApplicationContext) 自定义要使用的IoC容器而不使用默认的XmlApplicationContext ...

  4. 如何在Web项目中配置Spring MVC

    要使用Spring MVC需要在Web项目配置文件中web.xml中配置Spring MVC的前端控制器DispatchServlet <servlet> <servlet-name ...

  5. 转载:java web 项目中如何设置项目打开的默认页面

    通过博客学到的两种方法总结: 一.在web.xml文件中加入: 此时项目打开的默认页面就是loginS.html 二.在WebContent文件夹下添加index.jsp文件,此时这个index.js ...

  6. 在web项目中配置log4j

    在web.xml中添加如下代码 <context-param> <param-name>contextConfigLocation</param-name> < ...

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

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

  8. java web 项目中 简单定时器实现 Timer

    java web 项目中 简单定时器实现 Timer 标签: Java定时器 2016-01-14 17:28 7070人阅读 评论(0) 收藏 举报  分类: JAVA(24)  版权声明:本文为博 ...

  9. 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)

    版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/5813856.html 内容介绍: 真分布式SolrCloud+Zookeepe ...

随机推荐

  1. windows2008R2-Exchange管理笔记

    命令全在Exchange shell里面执行 批量修改用户属性 Set-User -Identity liganwei@yjcn.com -Phone "分机" -HomePhon ...

  2. 人生苦短_我用Python_pymysql库对Mysql数据库操作_009

    # coding=utf-8 import pymysql ''' 数据库的登录信息: config={ 'host':'118.126.108.xxx', # :主机 'user':'python' ...

  3. C#基础提升系列——C#文件和流

    C#文件和流 本文主要是对C#中的流进行详细讲解,关于C#中的文件操作,考虑到后期.net core跨平台,相关操作可能会发生很大变化,所以此处不对文件系统(包括目录.文件)过多的讲解,只会描述出在. ...

  4. Spring Security 安全认证

    Spring Boot 使用 Mybatis 依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> ...

  5. 欢迎页jsp

    <!-- 拦截设置 --><servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> ...

  6. 详解SQL Server 2008工具SQL Server Profiler

    一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 1.图形化监视SQL Server查询: 2.在后台收集查询信息: 3.分析性能: 4.诊 ...

  7. 4412 i2c驱动

    1.Linux主机驱动和外设驱动分离思想 外设驱动→API→主机驱动→板机逻辑--具体的i2c设备(camera,ts,eeprom等等) 2.主机驱动 根据控制器硬件手册,操作具体的寄存器,产生波形 ...

  8. JS中数据结构之队列

    队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素.队列用于存储按 顺序排列的数据,先进先出. 队列的两种主要操作是:向队列中插入新元素和删除队列中的元素.插入操作也叫做入 队,删除操作也 ...

  9. [CSP-S模拟测试]:kill(二分答案+贪心)

    题目传送门(内部题50) 输入格式 第一行包含四个整数$n,m,s$,表示人数.怪物数及任务交付点的位置.第二行包含$n$个整数$p_1,p_2,...,p_n$.第三行包含$n$个整数$q_1,q_ ...

  10. Sublime Text 3 快捷键总结(Mac)

    Command + Shift + L 光标同时定位多行 Command + Enter 在下一行插入新行.举个栗子:即使光标不在行尾,也能快速向下插入一行.