Jboss
在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。JBoss是免费的,开放源代码J2EE的实现,它通过LGPL许可证进行发布,这使得JBoss广为流行。Boss是一个运行EJB的J2EE应用服务器,例如:数据库访问JDBC、交易(JTA/JTS)、消息机制 (JTS)、命名机制(JNDI)和管理支持(JMX)。它是开放源代码的项目,遵循最新的J2EE规范
Log4j配置
Log4j是Apache的一个开放源代码项目,是一种非常流行的日志框架。通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件等,Log4j也可以帮助我们控制每一条日志的输出格式以及每一条日志信息的级别。
查看 \jboss-4.2.3-6.4.3R1.0-8089-heilongjiang\server\default\conf\jboss-log4j.xml文件,jboss-log4j.xml 记录了Log4j的配置信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!-- ===================================================================== -->
<!-- -->
<!-- Log4j Configuration -->
<!-- -->
<!-- ===================================================================== -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<!-- 定义Appender,即目的地 属性File表示日志文件-->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/server.log"/>
<param name="Append" value="true"/>
<!-- 定义输出日志的级别-->
<param name="Threshold" value="INFO"/>
<!-- 定义输出日志的格式-->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<!-- 定义Appender,即目的地 System.out表示输出在控制台上-->
<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">
<param name="ConversionPattern" value="%d %-5p [%t] [%c] %m%n"/>
</layout>
</appender>
<category name="org.jboss">
<!-- 定义日志输出方式 -->
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</category>
<category name="org.apache">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<!-- 定义日志输的日志级别 -->
<priority value="WARN"/>
</category>
<root>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
配置文件
- appender 表示日志输出的目的地: appender name="FILE" 节点 ,配置中日志将会输出到指定文件中, ${jboss.server.home.dir}/log/server.log 为日志文件的路径以及文件名,Threshold定义了日志的默认输出级别,ConversionPattern为日志输出格式; appender name="CONSOLE" 节点配置中日志将会输出到控制台中,ConversionPattern为日志输出格式
- root节点配置表示默认日志都输出到定义的日志文件(FILE配置)和 定义的控制台CONSOLE中
- <category name="org.jboss">节点控制只有org.jboss包下的日志将会输出,其中priority的值配置为WARN表示只有WARN级别日志才会输出,如果不定义会按照appender 中的定义Threshold日志级别输出, <appender-ref ref="STARSMS-FILE"/> 表示日志输出方式
日志输出到不同文件
上文的配置中org.jboss和org.apache都会输出到server.log日志中, 从上文可知如果要将量类日志输出到不同文件中,只需要再定义一个appender 节点 并修改<category name="org.jboss"> 日志输出方式为新定义的appender节点上
1.定义appender
<appender name="JbossFile" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/jboss.log"/>
<param name="Append" value="true"/>
<param name="Threshold" value="INFO"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
2.修改<category name="org.jboss">,将appender-ref设置为JbossFile这样日志就会输出到 jboss.log日志中
<category name="org.jboss">
<!-- 定义日志输出方式 -->
<appender-ref ref="CONSOLE"/>
<appender-ref ref="JbossFile"/>
</category>