Posted on 2007-07-05 15:20 
Java.net 阅读(1765) 
评论(0)  编辑  收藏  所属分类: 
JBoss学习 
			
			
		 
		JBoss的日志配置都通过xml的形式配置的,而大多项目应用又是通过log4j.properties来配置的..一下子还真的不适应.正好趁此机会复习一下log4j在JBoss下的xml的配置方式.
在应用中使用最多的一般有两种:输出到控制台、文件...下面就给出这两种输出方式的配置.
首先用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>
其它保持默认就好了...
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>
这里把默认的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类将会输出.