溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JBoss5.x下配置Log4j方法介紹

發(fā)布時間:2020-10-14 04:59:53 來源:腳本之家 閱讀:206 作者:于亮 欄目:編程語言

最近在學(xué)習(xí)JBoss下配置Log4j,JBoss的各個版本的目錄、JBoss和Log4j集成的文件名每次都有變化,在JBoss5.x下配置了log4j.xml文件,但是配置沒有生效。如果你在項目中沒有指定使用的log4j的配置文件,最好使用JBoss自帶的配置文件,文件名為jboss-log4j.xml。該文件在Jboss容器的目錄為:${JBOSS_HOME}\server\default\conf下。下面就是基于log4j默認(rèn)配置的一些基本修改和注釋:

<span ><?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> 
  <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> 
    <param name="File" value="${jboss.server.log.dir}/server.log" /> 
    <param name="Append" value="true" /> 
    <!-- Rollover at midnight each day --> 
    <param name="DatePattern" value="'.'yyyy-MM-dd" /> 
    <!-- Rollover at the top of each hour 
    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/> 
    --> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <!-- The default pattern: Date Priority [Category] Message\n --> 
      <param name="ConversionPattern" value="%d %-5p [%c] %m%n" /> 
      <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n 
      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/> 
      --> 
    </layout> 
  </appender> 
  <appender name="ErrorFile" class="org.jboss.logging.appender.DailyRollingFileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> 
    <param name="File" value="${jboss.server.log.dir}/error.log" /> 
    <param name="Threshold" value="ERROR" /> 
    <param name="Append" value="true" /> 
    <!-- Rollover at midnight each day --> 
    <param name="DatePattern" value="'.'yyyy-MM-dd" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <!-- The default pattern: Date Priority [Category] Message\n --> 
      <param name="ConversionPattern" value="%d %-5p [%c] %m%n" /> 
      <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n 
      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/> 
      --> 
    </layout> 
  </appender> 
  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler" /> 
    <param name="Target" value="System.out" /> 
    <param name="Threshold" value="INFO" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <!-- The default pattern: Date Priority [Category] Message\n --> 
      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" /> 
    </layout> 
  </appender> 
  <!-- ================ --> 
  <!-- Limit categories --> 
  <!-- ================ --> 
  <category name="org.hibernate"> 
    <priority value="WARN" /> 
  </category> 
  <category name="org.hibernate.engine.loading.LoadContexts"> 
    <priority value="ERROR" /> 
  </category> 
  <category name="org.jboss"> 
    <priority value="INFO" /> 
  </category> 
  <!-- Limit the org.apache category to INFO as its DEBUG is verbose --> 
  <category name="org.apache"> 
    <priority value="WARN" /> 
  </category> 
  <!-- Limit the jacorb category to WARN as its INFO is verbose --> 
  <category name="jacorb"> 
    <priority value="WARN" /> 
  </category> 
  <!-- Limit the org.jgroups category to WARN as its INFO is verbose --> 
  <category name="org.jgroups"> 
    <priority value="WARN" /> 
  </category> 
  <!-- Limit the org.quartz category to INFO as its DEBUG is verbose --> 
  <category name="org.quartz"> 
    <priority value="INFO" /> 
  </category> 
  <!-- Limit the JSR77 categories --> 
  <category name="org.jboss.management"> 
    <priority value="INFO" /> 
  </category> 
  <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose --> 
  <category name="org.jboss.serial"> 
    <priority value="INFO" /> 
  </category> 
  <category name="com.liang"> 
    <priority value="DEBUG" /> 
  </category> 
  <!-- ======================= --> 
  <!-- Setup the Root category --> 
  <!-- ======================= --> 
  <root> 
    <appender-ref ref="CONSOLE" /> 
    <appender-ref ref="FILE" /> 
    <appender-ref ref="ErrorFile" /> 
  </root> 
</log4j:configuration></span> 

1. Log4j的幾種輸出方式

org.apache.log4j.ConsoleAppender(控制臺)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個日志文件)
org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定位置)

2. 日志記錄的優(yōu)先級

優(yōu)先級從高到低:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL。
log4j建議使用FATAL、ERROR、WARN、INFO、DEBUG。
你可以在<param name="Threshold" value="ERROR" />來配置level,Threshold是一個全局的過濾器,低于其設(shè)置的level將不會顯示出來。

3. 當(dāng)重啟Jboss服務(wù)之后是否保存之前的日志

<param name="Append" value="true" />,設(shè)置為true后,當(dāng)Jboos重啟后當(dāng)前的log不會消失,即在原有日志上增加新日志。

4. 日志輸出格式

    %c     輸出所屬類的全名,可在修改為 %c{num} ,num表示輸出的范圍 
             如:"org.apache.elathen.ClassName",%c{2}將輸出elathen.ClassName               
    %d     輸出日志時間其格式為 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
    %l      輸出日志事件發(fā)生位置,包括類目名、發(fā)生線程,在代碼中的行數(shù)
    %n     換行符
    %m    輸出代碼指定信息,如info("message"),輸出message
    %p     輸出優(yōu)先級,即 FATAL ,ERROR 等
    %r     輸出從啟動到顯示該log信息所耗費的毫秒數(shù)
    %t     輸出產(chǎn)生該日志事件的線程名

5. 關(guān)于category的配置

category指定了以什么開頭的包下的類輸出的日志的級別。例如:

<category name="com.liang">
  <priority value="DEBUG" />
  <appender-ref ref='FILE'/>
</category>

從上面可以看出,項目中以com.liang包開頭的所有類中,凡是DEBUG級別的日志可以輸出到FILE中。

注意:定義了一個appender-ref=FILE的引用,但是你如果也在root下配置了appender-ref=FILE的引用,會導(dǎo)致輸出到FILE的日志會重復(fù)。本人碰到過類似的問題。

總結(jié)

以上就是本文關(guān)于JBoss5.x下配置Log4j方法介紹的全部內(nèi)容,希望對大家有所幫助。剛興趣的朋友可以繼續(xù)參閱本站:淺談Spring的兩種配置容器、為什么我們要做三份 Webpack 配置文件、Java之Spring注解配置bean實例代碼解析等,感謝閱讀、

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI