posts - 14,  comments - 37,  trackbacks - 0
          1. 把 D:\jboss-4.0.5.GA\server\default\conf 里面的 log4j.xml 改名為 jboss-log4j.xml

          2. 編輯 D:\jboss-4.0.5.GA\server\default\conf 里面的 jboss-service.xml 找到

             <!-- ==================================================================== -->
             
          <!-- Log4j Initialization                                                 -->
             
          <!-- ==================================================================== -->

             
          <mbean code="org.jboss.logging.Log4jService"
                name
          ="jboss.system:type=Log4jService,service=Logging"
                xmbean-dd
          ="resource:xmdesc/Log4jService-xmbean.xml">
                
          <attribute name="ConfigurationURL">resource:log4j.xml</attribute>
                
          <!-- Set the org.apache.log4j.helpers.LogLog.setQuiteMode. As of log4j1.2.8
                this needs to be set to avoid a possible deadlock on exception at the
                appender level. See bug#696819.
                
          -->
                
          <attribute name="Log4jQuietMode">true</attribute>
                
          <!-- How frequently in seconds the ConfigurationURL is checked for changes -->
                
          <attribute name="RefreshPeriod">60</attribute>
             
          </mbean>

          把 resource:log4j.xml 改為 resource:jboss-log4j.xml

          3. 在自己的應用程序的 WEB-INF 目錄中添加一個 jboss-web.xml 內容如下

          <?xml version="1.0" encoding="UTF-8"?>
          <jboss-web>
            
          <class-loading java2ClassLoadingCompliance="false">
            
          <loader-repository>
                ConfigTest:loader=ConfigTest.war
                
          <loader-repository-config>java2ParentDelegation=false
                
          </loader-repository-config>
             
          </loader-repository>
           
          </class-loading>
          </jboss-web>

          4. 把 log4j.jar 加到 build-path 中

          5. 在自己的應用程序的 WEB-INF 目錄中添加一個 log4j.properties 內容如下:

          #Global variable definition
          LOG_LEVEL
          =DEBUG
          LOG_FILE1
          =D:/jboss-4.0.5.GA/server/default/log/configtest1.log
          LOG_FILE2
          =D:/jboss-4.0.5.GA/server/default/log/configtest2.log

          # com.microsoft Logger
          log4j.logger.org.stephencat.test
          =${LOG_LEVEL}, logfile1
          log4j.additivity.org.stephencat.test
          =false

          # com.microsoft Logger
          log4j.logger.org.stephencat.cat
          =${LOG_LEVEL}, logfile2
          log4j.additivity.org.stephencat.cat
          =false

          # Console Appender Definition
          log4j.appender.stdout
          =org.apache.log4j.ConsoleAppender
          log4j.appender.stdout.layout
          =org.apache.log4j.PatternLayout
          log4j.appender.stdout.layout.ConversionPattern
          =%-5p %c(%t) %x:%m%n
          #log4j.appender.stdout.layout.ConversionPattern
          =%-5p:[%d{MM/dd HH:mm:ss,SSS}] %c(%t) %x:%m%n

          # File Appender Definition
          log4j.appender.logfile1
          =org.apache.log4j.DailyRollingFileAppender
          log4j.appender.logfile1.File
          =${LOG_FILE1}
          log4j.appender.logfile1.DatePattern
          ='.'yyyy-MM-dd
          log4j.appender.logfile1.layout
          =org.apache.log4j.PatternLayout
          log4j.appender.logfile1.layout.ConversionPattern
          =%-5p:[%d{ISO8601}] %c(%t) %x:%m%n

          # File Appender Definition
          log4j.appender.logfile2
          =org.apache.log4j.DailyRollingFileAppender
          log4j.appender.logfile2.File
          =${LOG_FILE2}
          log4j.appender.logfile2.DatePattern
          ='.'yyyy-MM-dd
          log4j.appender.logfile2.layout
          =org.apache.log4j.PatternLayout
          log4j.appender.logfile2.layout.ConversionPattern
          =%-5p:[%d{ISO8601}] %c(%t) %x:%m%n

          這里分別定義了兩個命名控件:
          logfile1 對應命名空間(Java 代碼中的 package)org.stephencat.test.*
          logfile2 對應命名空間 org.stephencat.cat.*

          6. 建立一個用于初始化的 InitServlet ,配置如下方法:

              /**
               * Initialization of the servlet. <br>
               *
               * 
          @throws ServletException if an error occure
               
          */
              
          public void init(ServletConfig config) throws ServletException {
                  
          // Put your code here
                  String isRelativePosition = config.getInitParameter("relativePosition");
                  String logConfiguration 
          = config.getInitParameter("logConfiguration");
                  String root 
          = "";
                  
          if(isRelativePosition.equals("true")){
                      root 
          = config.getServletContext().getRealPath("/");
                  }
                  PropertyConfigurator.configure(root 
          + logConfiguration);
              }

          在 web.xml 配置這個 Servlet 的初始化參數(聲明 log4j.properties 的位置)和啟動優先級:

            <servlet>
              
          <description>This is the description of my J2EE component</description>
              
          <display-name>This is the display name of my J2EE component</display-name>
              
          <servlet-name>InitServlet</servlet-name>
              
          <servlet-class>org.stephencat.test.InitServlet</servlet-class>
              
          <init-param>
                  
          <param-name>relativePosition</param-name>
                  
          <param-value>true</param-value>
              
          </init-param>
              
          <init-param>
                  
          <param-name>logConfiguration</param-name>
                  
          <param-value>WEB-INF/log4j.properties</param-value>
              
          </init-param>
              
          <load-on-startup>1</load-on-startup>
            
          </servlet>

          7. 在 org.stephencat.test.TestServlet (映射為 /test)中加入:

              static Logger log = Logger.getLogger(TestServlet.class.getName());

          8. 在 org.stephencat.cat.Test2Servlet(映射為 /test2)中加入:

              static Logger log = Logger.getLogger(Test2Servlet.class.getName());

          9. 重新啟動 JBoss ,會出現如下錯誤消息:

          11:53:21,549 ERROR [STDERR] log4j:ERROR A "org.jboss.logging.appender.FileAppend
          er
          " object is not assignable to a "org.apache.log4j.Appender" variable.
          11:53:21,549 ERROR [STDERR] log4j:ERROR The class "org.apache.log4j.Appender" wa
          s loaded by
          11:53:21,549 ERROR [STDERR] log4j:ERROR [WebappClassLoader
            delegate: false
            repositories:
              /WEB-INF/classes/
          ----------> Parent Classloader:
          java.net.FactoryURLClassLoader@dcc4e2
          ] whereas object of type
          11:53:21,549 ERROR [STDERR] log4j:ERROR "org.jboss.logging.appender.FileAppender
          " was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@a97b0b].
          11:53:21,549 ERROR [STDERR] log4j:ERROR Could not instantiate appender named "FI
          LE
          ".

          這是因為自己的 log4j.jar 與 JBoss 的 log4jService 有點沖突,但這段錯誤消息實際上可以忽略

          10. 訪問以下網址:

          http://localhost/..../test

          http://localhost/..../test2

          將分別在以下日志文件中輸出日志內容:

          D:/jboss-4.0.5.GA/server/default/log/configtest1.log
          D:/jboss-4.0.5.GA/server/default/log/configtest2.log

          文件名和物理路徑可在 log4j.properties 中修改。
          posted on 2007-07-20 16:44 冰封的愛 閱讀(1279) 評論(0)  編輯  收藏 所屬分類: J2EE
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 历史| 东莞市| 黎城县| 梓潼县| 吐鲁番市| 灵川县| 探索| 鸡西市| 兴国县| 贵州省| 宿州市| 宽城| 榆林市| 江华| 江安县| 甘肃省| 贡觉县| 锦屏县| 河间市| 视频| 札达县| 云南省| 福泉市| 天全县| 本溪市| 晋州市| 瓮安县| 南汇区| 泸水县| 卫辉市| 大荔县| 集安市| 县级市| 静安区| 兴文县| 迁安市| 家居| 泾川县| 马公市| 专栏| 宁河县|