前几天碰到了一个常见的错误,在Jboss下配置了log4j.xml文件,但是配置没有生效。如果你在项目中没有指定使用的log4j的配置文件,最好使用文件名jboss-log4j.xml。该文件在Jboss容器的目录为:${JBOSS_HOME}\server\default\conf下。下面就是基于log4j默认配置的一些基本修改和注释:

<?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.alvinliang"><priority value="DEBUG" /></category><!-- ======================= --><!-- Setup the Root category --><!-- ======================= --><root><appender-ref ref="CONSOLE" /><appender-ref ref="FILE" /><appender-ref ref="ErrorFile" /></root></log4j:configuration>

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.alvinliang">
    <priority value="DEBUG" />
    <appender-ref ref='FILE'/>
</category>

从上面可以看出,项目中以com.alvinliang包开头的所有类中,凡是DEBUG级别的日志可以输出到FILE中。

这里要注意了,你定义了一个appender-ref=FILE的引用,但是你如果也在root下配置了appender-ref=FILE的引用,会导致输出到FILE的日志会重复。本人碰到过类似的问题。

【Log4j】Jboss下配置log4j简记相关推荐

  1. log4j java web_javaWeb配置log4j

    学习javaweb项目,配置log4j过程记录新建javaweb项目 zmblogs 在maven包管理站点 https://mvnrepository.com 下载jar包(log4j-1.2.15 ...

  2. log4j日志 linux配置,Log4j 日志详细用法

    简单的说log4j就是帮助开发人员进行日志输出管理的API类库.它最重要的特点就可以配置文件灵活的设置日志信息的优先级.日志信息的输出目的地.日志信息的输出格式 Log4j 除了可以记录程序运行日志信 ...

  3. Log4J 1.x 配置详解

    一 Log4J有三个主要的组件 1.1 Loggers(记录类型) Log4j划分了5个级别:DEBUG,INFO,WARN,ERROR,FATAL. 这5个level是有优先级顺序的,DEBUG&l ...

  4. Tomcat下log4j日志文件 配置过程

    1) tomcat6.0下的log4j日志文件 配置过程 首先下载两个文件,如我的tomcat版本是v6.0.24 http://www.apache.org/dist/tomcat/tomcat-6 ...

  5. log4j加载配置方式和配置详解

    log4j配置详解 log4j的配置文件有两种格式分别是xml和properties.本文只讲解properties格式.比较properties简洁易懂. log4j加载配置文件方式 大家在刚接触l ...

  6. Log4j使用及配置

    日志管理往往在项目中起着非常重要的作用,日志信息便于我们分析程序的执行情况,比较常用的日志工具有logging和log4j,当然还有其他很多种.为了实现日志的统一管理和配置,继而出现了slf4j来统一 ...

  7. SSM框架下结合 log4j、slf4j打印日志

    首先加入log4j和slf4j的jar包 <!-- 日志处理 <!-- slf4j日志包--><dependency><groupId>org.slf4j&l ...

  8. log4j(七)——log4j.xml简单配置样例说明

    一:测试环境与log4j(一)--为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 (1)这里栗子有一点特别呀!给出了包名唉!想必有用,是的,配置文件中要特别说明一下 ...

  9. log4j.xml如何配置

    Xml代码 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configurat ...

最新文章

  1. Jquery入门详解
  2. python动态时钟代码_python实现简易动态时钟
  3. 【EXCEL】VLOOKUP函数反向应用
  4. docker使用centos镜像
  5. java零碎要点---struts2中redirect和redirectAction的区别
  6. 统计英文文本的字母个数
  7. 基于内容的图像检索系统(合集)
  8. linux 生成2g文件吗,linux 32位系统 c++写大于2G文件
  9. 命令杀mysql进程
  10. 软件开发人员如何记笔记
  11. 可见光成像通信(OOC)驱动频率区域的计算
  12. python判断两个数据集是否存在包含关系
  13. 不同以“网”,云端地球全新升级上线!
  14. 和尚挖井故事给程序员的启示
  15. 礼是随还是不随,年轻人该如何选择?
  16. 【技术邻】聊一聊材料应力-应变曲线
  17. 2021-06-13早龙广告视频脚本 ——《世间不过是一顿早餐》
  18. OpenFeign学习
  19. git 列出远程标签_Git 标签管理
  20. BUAA 计网实验笔记 1

热门文章

  1. salt把返回写入到mysql
  2. Delphi+GDI
  3. cisco交换机MAC/CAW***防范
  4. promise常见错误
  5. 安装labelImg
  6. Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等
  7. How do you simple use git repository
  8. WampServer下开启curl
  9. 撰写oracle-sql-hint的注意事项
  10. MSSQL 'CREATE/ALTER PROCEDURE' 必须是查询批次中的第一个语句。