wml

          Log4j 配置 的問(wèn)題

          Web Server : Tomcat 5.0.30
          Spring :  1.2.8

          為了讓W(xué)eb項(xiàng)目中的Spring 使用Log4j做如下配置:

          1、在web.xml中添加如下內(nèi)容:

              <!--如果不定義webAppRootKey參數(shù),那么webAppRootKey就是缺省的"webapp.root"。但最好設(shè)置,以免項(xiàng)目之間的名稱沖突。
                  定義以后,在Web Container啟動(dòng)時(shí)將把ROOT的絕對(duì)路徑寫(xiě)到系統(tǒng)變量里。
                  然后log4j的配置文件里就可以用${webName.root }來(lái)表示W(wǎng)eb目錄的絕對(duì)路徑,把log文件存放于webapp中。
                  此參數(shù)用于后面的“Log4jConfigListener”-->
              <context-param>
                  <param-name>webAppRootKey</param-name>
                  <param-value>webName.root</param-value>
              </context-param>

              <!--由Sprng載入的Log4j配置文件位置-->
              <context-param>
                  <param-name>log4jConfigLocation</param-name>
                  <param-value>/WEB-INF/log4j.properties</param-value>
              </context-param>

              <!--Spring默認(rèn)刷新Log4j配置文件的間隔,單位為millisecond-->
              <context-param>
                  <param-name>log4jRefreshInterval</param-name>
                  <param-value>60000</param-value>
              </context-param>

              <!-- Web 項(xiàng)目 Spring 加載 Log4j 的監(jiān)聽(tīng) -->
              <listener>
                  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
              </listener>

          2、編寫(xiě)log4j.properties屬性文件,使用web.xml配置的全局變量:

                log4j.appender.A_default.File=${webName.root}/WEB-INF/logs/log4j.log

                詳細(xì)內(nèi)容略。

          問(wèn)題:
                如上配置后,log4j.properties屬性文件的存放位置,應(yīng)在Web項(xiàng)目中的WEB-INF下,而不是默認(rèn)的/WEB-INF/classes下。
                可在做spring 的單元測(cè)試時(shí),默認(rèn)讀取classes下的log4j.properties,不知該問(wèn)題如何解決?

                如果把log4j.properties存放在/WEB-INF/classes/log4j.properties下的話,會(huì)在啟動(dòng)Tomcat時(shí)報(bào)錯(cuò):
                
                log4j:ERROR setFile(null,true) call failed.
                java.io.FileNotFoundException: \WEB-INF\logs\log4j.log (系統(tǒng)找不到指定的路徑。)

                可在\WEB-INF\logs\log4j.log 卻可以看到log4j.log文件已存在Spring的日志輸出信息。
                分析可能是其他的類在加載log4j.properties時(shí),無(wú)法讀取${webName.root}變量的值。

          posted on 2006-07-27 13:25 wml 閱讀(8243) 評(píng)論(6)  編輯  收藏 所屬分類: 技術(shù)隨筆

          評(píng)論

          # re: Log4j 配置 的問(wèn)題 2006-08-03 07:26 dohkoos

          我想你應(yīng)該是配置了commons-logging.properties,將commons-logging指向了log4j。  回復(fù)  更多評(píng)論   

          # re: Log4j 配置 的問(wèn)題 2007-02-09 10:28 cocaine

          是log4j.properties與tomcat的log4j重名的原因
          你把/WEB-INF/classes/log4j.properties的log4j配置文件改個(gè)名字看(如:logConfig.properties)
          因?yàn)樵趖omcat啟動(dòng)是默認(rèn)去找log4j.properties,但此時(shí)Listener還沒(méi)有起來(lái),tomcat就要往\WEB-INF\logs\log4j.log 寫(xiě)日志就找不到了
            回復(fù)  更多評(píng)論   

          # re: Log4j 配置 的問(wèn)題[未登錄](méi) 2008-06-24 14:01 a

          謝謝你的帖子!  回復(fù)  更多評(píng)論   

          # re: Log4j 配置 的問(wèn)題 2008-10-21 12:38 leornado

          <!-- Leave the listener commented-out if using JBoss -->
          <!--
          <listener>
          <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
          </listener>
          -->
          當(dāng)使用JBOSS之外的web容器時(shí)可以將listener注釋起來(lái)  回復(fù)  更多評(píng)論   

          # re: Log4j 配置 的問(wèn)題 2009-02-04 15:33 11

          打倒阿扁  回復(fù)  更多評(píng)論   

          # re: Log4j 配置 的問(wèn)題 2009-03-12 15:58

          # re: Log4j 配置 的問(wèn)題 2007-02-09 10:28 cocaine
          是log4j.properties與tomcat的log4j重名的原因
          你把/WEB-INF/classes/log4j.properties的log4j配置文件改個(gè)名字看(如:logConfig.properties)
          因?yàn)樵趖omcat啟動(dòng)是默認(rèn)去找log4j.properties,但此時(shí)Listener還沒(méi)有起來(lái),tomcat就要往\WEB-INF\logs\log4j.log 寫(xiě)日志就找不到了


          確實(shí)是這樣呀  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 精河县| 东山县| 延津县| 灵台县| 西乌珠穆沁旗| 凤城市| 布尔津县| 中山市| 贵港市| 治多县| 丹江口市| 读书| 成都市| 晋州市| 辽宁省| 抚松县| 宝丰县| 荥经县| 景洪市| 怀化市| 镇原县| 涟源市| 乌兰浩特市| 深水埗区| 鹿泉市| 苍溪县| 辽宁省| 綦江县| 交口县| 永年县| 永城市| 横峰县| 甘泉县| 新化县| 洛浦县| 临海市| 思茅市| 湖州市| 仲巴县| 开阳县| 静安区|