JBoss5.x下配置Log4j方法介绍

 更新时间:2017年10月20日 09:15:49   作者:于亮  
这篇文章主要介绍了JBoss5.x下配置Log4j方法介绍,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。

最近在学习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实例代码解析等,感谢阅读、

相关文章

  • Java数据结构之稀疏矩阵定义与用法示例

    Java数据结构之稀疏矩阵定义与用法示例

    这篇文章主要介绍了Java数据结构之稀疏矩阵定义与用法,结合实例形式分析了java稀疏矩阵的定义、运算、转换等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Java 后端接收Request请求参数的多种方式汇总

    Java 后端接收Request请求参数的多种方式汇总

    本文给大家总结了后端接收Request请求参数的7种方式,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10
  • java文件输出流写文件的几种方法

    java文件输出流写文件的几种方法

    这篇文章主要介绍了java文件输出流写文件的几种方法,需要的朋友可以参考下
    2014-04-04
  • SpringSecurity添加图形验证码认证实现

    SpringSecurity添加图形验证码认证实现

    本文主要介绍了SpringSecurity添加图形验证码认证实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java网络编程三要素及通信程序详解

    Java网络编程三要素及通信程序详解

    这篇文章主要介绍了Java网络编程三要素及通信程序详解,Java网络编程是在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换,需要的朋友可以参考下
    2023-07-07
  • java 获取日期的几天前,几个月前和几年前的实例

    java 获取日期的几天前,几个月前和几年前的实例

    下面小编就为大家带来一篇java 获取日期的几天前,几个月前和几年前的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • SpringMVC拦截器实现登录认证

    SpringMVC拦截器实现登录认证

    这篇文章主要介绍了SpringMVC拦截器实现登录认证的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • SpringBoot项目整合Redis教程详解

    SpringBoot项目整合Redis教程详解

    这篇文章主要介绍了SpringBoot项目整合Redis教程详解,Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。感兴趣的小伙伴可以参考阅读本文
    2023-03-03
  • SpringBoot 文件或图片上传与下载功能的实现

    SpringBoot 文件或图片上传与下载功能的实现

    这篇文章主要介绍了SpringBoot 文件或图片上传与下载功能的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 亲手带你解决Debug Fastjson的安全漏洞

    亲手带你解决Debug Fastjson的安全漏洞

    这篇文章主要介绍了亲手带你解决Debug Fastjson的安全漏洞,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论