JBoss的日志配置都通过xml的形式配置的,而大多项目应用又是通过log4j.properties来配置的..一下子还真的不适应.正好趁此机会复习一下log4j在JBoss下的xml的配置方式.
在应用中使用最多的一般有两种:输出到控制台、文件...下面就给出这两种输出方式的配置.
首先用UE打开位于%JBOSS_HOME%\server\default\conf\jboss-log4j.xml
1、控制台
如果使用的时Eclipse,则是输出到Console..正式应用中输出到JBoss的CMD.
找到文件中默认的CONSOLE配置..拷贝复制,改名为mylog1...
2、文件
JBoss中缺省的FILE配置是每日回滚,如果一天的日志量大于了单个文件的大小,则当前的日志文件就会被覆盖..因此一般都设置一个根据文件大小回滚的配置.
在应用中使用最多的一般有两种:输出到控制台、文件...下面就给出这两种输出方式的配置.
首先用UE打开位于%JBOSS_HOME%\server\default\conf\jboss-log4j.xml
1、控制台
如果使用的时Eclipse,则是输出到Console..正式应用中输出到JBoss的CMD.
找到文件中默认的CONSOLE配置..拷贝复制,改名为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 >
其它保持默认就好了...
< 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配置是每日回滚,如果一天的日志量大于了单个文件的大小,则当前的日志文件就会被覆盖..因此一般都设置一个根据文件大小回滚的配置.
<
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 >
< 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标记
<
logger
name
="yourclass"
>
< level value ="DEBUG" />
< appender-ref ref ="mylog1" />
< appender-ref ref ="mylog2" />
</ logger >
设置级别位DEBUG调试..引用前面定义mylog1,mylog2...logger标记的name属性表示需要日志输出的包.可以指定为包路径也可以指定为类名.例如:com.xxx 表示com.xxx下的所有类就会被输出,com.xxx.yyy.zzz(zzz为类名)表示zzz类将会输出.
< level value ="DEBUG" />
< appender-ref ref ="mylog1" />
< appender-ref ref ="mylog2" />
</ logger >