详解log4j2(下) - Log4j2在WEB项目中配置
官方介紹和學(xué)習(xí)文檔網(wǎng)址為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>然后啟動項目,就出現(xiàn)了這個錯誤信息【ERROR StatusLogger No Log4j context configuration provided. This is very unusual】。
注意,默認(rèn)的配置文件是log4j2.xml,而不是log4j.xml了。
按照網(wǎng)上的大神轉(zhuǎn)來轉(zhuǎn)去的一個Servlet 2.5的配置怎么試都報這個錯誤(沒有關(guān)于3.0的配置介紹)。
沒辦法了,只有去官網(wǎng)仔細(xì)學(xué)習(xí)了。
我的項目使用Servlet 3.0,著重看了官網(wǎng)的MANUAL->Web Applications and JSPs->Servlet 3.0 and Newer這一段。
發(fā)現(xiàn)以下幾個注意點:
一、Tomcat 7.0.43以前的版本,需要從catalina.properties的配置項【jarsToSkip】中屏蔽掉“l(fā)og4j*.jar”這一選項。
二、context-param中關(guān)于配置文件的路徑信息配置是【log4jConfiguration】而不是log4jConfigLocation。
三、context-param中需要增加配置信息【log4jContextName】。
四、Listener和Filter相關(guān)的配置在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>重新發(fā)布項目,竟然還是報錯,不能正確的初始化和使用!
好吧,不賣關(guān)子了,這個問題最終查到了,屬于最難查的問題范疇了,就是“我原以為”系列。
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,可以使用性能指數(shù)級提升的Log4j2了。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的详解log4j2(下) - Log4j2在WEB项目中配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解log4j2(下) - 按日志级别区
- 下一篇: slf4j介绍及配置详解