当前位置: 移动技术网 > IT编程>开发语言>Java > JBoss5.x下配置Log4j方法介绍

JBoss5.x下配置Log4j方法介绍

2019年07月19日  | 移动技术网IT编程  | 我要评论

最近在学习jboss下配置log4j,jboss的各个版本的目录、jboss和log4j集成的文件名每次都有变化,在jboss5.x下配置了log4j.xml文件,但是配置没有生效。如果你在项目中没有指定使用的log4j的配置文件,最好使用jboss自带的配置文件,文件名为jboss-log4j.xml。该文件在jboss容器的目录为:${jboss_home}\server\default\conf下。下面就是基于log4j默认配置的一些基本修改和注释:

<span style="font-size:12px;"><?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(每天产生一个日志文件)
org.apache.log4j.writerappender(将日志信息以流格式发送到任意指定位置)

2. 日志记录的优先级

优先级从高到低:off > fatal > error > warn > info > debug > all。
log4j建议使用fatal、error、warn、info、debug。
你可以在<param name="threshold" value="error" />来配置level,threshold是一个全局的过滤器,低于其设置的level将不会显示出来。

3. 当重启jboss服务之后是否保存之前的日志

<param name="append" value="true" />,设置为true后,当jboos重启后当前的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      输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
    %n     换行符
    %m    输出代码指定信息,如info("message"),输出message
    %p     输出优先级,即 fatal ,error 等
    %r     输出从启动到显示该log信息所耗费的毫秒数
    %t     输出产生该日志事件的线程名

5. 关于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的引用,会导致输出到file的日志会重复。本人碰到过类似的问题。

总结

以上就是本文关于jboss5.x下配置log4j方法介绍的全部内容,希望对大家有所帮助。刚兴趣的朋友可以继续参阅本站:浅谈spring的两种配置容器为什么我们要做三份 webpack 配置文件java之spring注解配置bean实例代码解析等,感谢阅读、

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网