JBoss的日志配置都通過xml的形式配置的,而大多項目應(yīng)用又是通過log4j.properties來配置的..一下子還真的不適應(yīng).正好趁此機會復(fù)習(xí)一下log4j在JBoss下的xml的配置方式.
在應(yīng)用中使用最多的一般有兩種:輸出到控制臺、文件...下面就給出這兩種輸出方式的配置.
首先用UE打開位于%JBOSS_HOME%\server\default\conf\jboss-log4j.xml
1、控制臺
如果使用的時Eclipse,則是輸出到Console..正式應(yīng)用中輸出到JBoss的CMD.
找到文件中默認的CONSOLE配置..拷貝復(fù)制,改名為mylog1...
<appender name="mylog1" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
<!--配置日志級別,這里位DEBUG-->
<param name="Threshold" value="DEBUG"/>
<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>
其它保持默認就好了...
2、文件
JBoss中缺省的FILE配置是每日回滾,如果一天的日志量大于了單個文件的大小,則當(dāng)前的日志文件就會被覆蓋..因此一般都設(shè)置一個根據(jù)文件大小回滾的配置.
<appender name="mylog2" class="org.jboss.logging.appender.RollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/mylog2.log"/>
<param name="Append" value="false"/>
<!-- 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>
這里把默認的org.jboss.logging.appender.DailyRollingFileAppender換為org.jboss.logging.appender.RollingFileAppender
完全可以顧名思義.File屬性用于指定日志文件存放的位置...
定義好了兩個配置后,需要定義一個logger標(biāo)記
<logger name="yourclass">
<level value="DEBUG" />
<appender-ref ref="mylog1"/>
<appender-ref ref="mylog2"/>
</logger>
設(shè)置級別位DEBUG調(diào)試..引用前面定義mylog1,mylog2...logger標(biāo)記的name屬性表示需要日志輸出的包.可以指定為包路徑也可以指定為類名.例如:com.xxx 表示com.xxx下的所有類就會被輸出,com.xxx.yyy.zzz(zzz為類名)表示zzz類將會輸出.