首页 > 其他分享 >Log4j2在WEB项目中配置

Log4j2在WEB项目中配置

时间:2023-01-04 16:33:43浏览次数:40  
标签:xml WEB Servlet 配置 jar 3.0 Log4j2 log4j

最近决定在新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了。

标签:xml,WEB,Servlet,配置,jar,3.0,Log4j2,log4j
From: https://www.cnblogs.com/kn-zheng/p/17025279.html

相关文章

  • 如何使用Burp Suite测试WebSocket
    BurpSuite具有测试WebSocket的能力,可以实时拦截和修改WebSocket消息。遗憾的是,Burp缺乏针对WebSockets的Repeater、Scanner或Intruder功能。但在新版BurpSuite中,增加了针对......
  • 如何使用Fiddler测试WebSocket
    一Fiddler本身可以捕获WebSocket流量,但是无法操纵WebSocket流量。1、启动fiddler,在主session列表中找到带ws图标的WebSocket请求。2、双击ws请求,Fiddler界面右边就会出......
  • 渗透工具burpsuite的安装与配置环境变量
    Burpsuite简介Burpsuite是用于攻击web应用程序的集成平台,它可以算是web安全工具里面的瑞士军刀。所有的工具共享一个能处理并显示HTTP消息的可扩展框架,模块之间无缝交换所有......
  • Spring Boot整合Web项目常用功能详解
    这篇文章主要介绍了SpringBoot整合Web项目常用功能详解,在Web应用开发过程中,可以通过SpringBoot的Starter来将这些常用功能进行整合与集中维护,以达到开箱即用的目的。,需......
  • 非WEB项目中引入Hibernate Validator
    前言:网上一些朋友分享了关于hibernate-validator的使用方法,但是不是缺少关联库信息,就是提供的参考代码中缺少自定类。希望我这一篇博客能够让你顺利的跑出预期的结果。......
  • 又见JavaWeb的中文乱码
    简单翻了一下记录,我已经写了至少4篇关于编码和乱码的博客了,每次都觉得自己懂了。实际上,这次的遭遇证明了“真懂”是一种很难达到的境界,吾辈仍需努力!一、背景是这样子的:......
  • nginx 配置反向代理和负载均衡
    环境准备主机IPcontrol01192.168.29.128nginx01192.168.29.101nginx02192.168.29.102nginx03192.168.29.103一、配置反向代理control01nginx配......
  • 03- 配置数据库
    1.配置数据库#1.安装第三方模块pipinstallmysqlclient#2.django连接数据库在项目中的settings.py中配置将:......
  • SpringBoot配置文件中spring
    SpringBoot配置文件中spring.profiles.active配置详解现象:在开发的时候测试和生产配置不一样每次加配置都需要更新生产原因:不方便解决:添加多套配置知识库:1、多环......
  • tomcat的web项目的远程热发布
    已经发布的项目war包更改了怎么办?我常用的做法是:1.把war包上传服务器2.远程登录服务器后台3.停止tomcat服务4.用新的war包替换老的war包5.启动tomcat服务后来......