捕風(fēng)之巢

          統(tǒng)計(jì)

          • 隨筆 - 7
          • 文章 - 82
          • 評(píng)論 - 14
          • 引用 - 0

          留言簿(3)

          java友情鏈接

          閱讀排行榜

          評(píng)論排行榜

          spring 對(duì)Log4j的增強(qiáng)!

          ?Spring最擅長(zhǎng)的,就是在別家的蛋糕上再加些cream,讓你J2EE without Spring的時(shí)候心癢癢。

          log4j,可以有如下的cream:
          1. 動(dòng)態(tài)的改變記錄級(jí)別和策略,不需要重啟Web應(yīng)用,如《Effective Enterprise Java》所說(shuō)。
          2. 把log文件定在 /WEB-INF/logs/ 而不需要寫絕對(duì)路徑。
          3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。

          在web.xml 添加

          <context-param>
          <param-name>log4jConfigLocation</param-name>
          <param-value>WEB-INF/log4j.properties</param-value>
          </context-param>

          <context-param>
          <param-name>log4jRefreshInterval</param-name>
          <param-value>60000</param-value>
          </context-param>

          <listener>
          <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
          </listener>

          在上文的配置里,
          Log4jConfigListener會(huì)去WEB-INF/log4j.propeties 讀取配置文件;
          開一條watchdog線程每60秒掃描一下配置文件的變化;
          并把web目錄的路徑壓入一個(gè)叫webapp.root的系統(tǒng)變量。

          然后,在log4j.properties 里就可以這樣定義logfile位置


          log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log

          如果有多個(gè)web應(yīng)用,怕webapp.root變量重復(fù),可以在context-param里定義webAppRootKey。

          在jboss中啟動(dòng)時(shí)出錯(cuò),
          2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR A "org.jboss.logging.util.OnlyOnceErrorHandler" object is not assignable to a "org.apache.log4j.spi.ErrorHandler" variable.
          2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR The class "org.apache.log4j.spi.ErrorHandler" was loaded by
          2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR [WebappClassLoader
          delegate: false
          repositories:
          /WEB-INF/classes/
          ----------> Parent Classloader:
          java.net.FactoryURLClassLoader@40f7a8
          ] whereas object of type
          2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR "org.jboss.logging.util.OnlyOnceErrorHandler" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@120a47e].
          2006-03-22 00:58:39,133 INFO [STDOUT] log4j:ERROR Could not create an Appender. Reported error follows.
          2006-03-22 00:58:39,133 INFO [STDOUT] java.lang.ClassCastException


          我log4j.properties如下:
          log4j.rootLogger=DEBUG,stdout,R
          #log4j.rootLogger=DEBUG,R

          #--------------------stdout--------------------------------
          log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

          # Pattern to output the caller's file name and line number.
          log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n

          #--------------------R--------------------------------
          #log4j.appender.R=org.apache.log4j.RollingFileAppender
          log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
          #this log file will be stored in web server's /bin directory,modify to your path which want to store.
          log4j.appender.R.File=${webapp.root}/WEB-INF/logs/MeetPortal.log
          #log4j.appender.R.datePattern='.'yyyy-MM-dd-HH-mm
          log4j.appender.R.datePattern='.'yyyy-MM-dd
          log4j.appender.R.append=true
          ## Keep one backup file
          log4j.appender.R.layout=org.apache.log4j.PatternLayout
          log4j.appender.R.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
          #[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
          按各位高手幫我看哈,謝謝謝!!!!!!!!!!!!!!!!!!!!!!!!111
          ===============================================
          The error above is caused by jboss problem, see
          http://jira.atlassian.com/browse/JRA-6823.
          "

          One way to solve the classloader issue is by reverting the JBoss configuration
          to the old classloading model.
          Edit the file
          <jboss>/server/default/jbossweb-tomcat55.sar/META-INF/jboss-service.xml
          Change the following lines:
          <attribute name="Java2ClassLoadingCompliance">true</attribute>
          <attribute name="UseJBossWebLoader">true</attribute>
          (both are default set to false in jboss-4.0.2).

          posted on 2006-10-25 08:53 捕風(fēng) 閱讀(1354) 評(píng)論(0)  編輯  收藏 所屬分類: web開發(fā)

          主站蜘蛛池模板: 安塞县| 元朗区| 三门县| 张家港市| 措勤县| 北辰区| 定结县| 台安县| 孟津县| 交口县| 疏附县| 疏勒县| 资溪县| 龙井市| 涞源县| 五指山市| 东平县| 中西区| 卢氏县| 巫溪县| 丰城市| 定日县| 阿合奇县| 肥城市| 三原县| 辽宁省| 大化| 通榆县| 吉林省| 阿荣旗| 阳谷县| 崇明县| 蒙阴县| 黑龙江省| 漳平市| 祁门县| 新竹市| 冕宁县| 建昌县| 临洮县| 台山市|