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