Jakarta Commons Logging(JCL)是一个轻量级的日志工具,可以根据实际环境调用Log4J等具体日志实现工具。
下面介绍一下在Jboss环境中commons-logging的实际应用。
程序直接借用了OReilly的Enterprise JavaBeans Fourth中的4.2节的例子,增加了日志信息的记录功能。
首先实现了一个TestCommonsLogging类,需要用到commons-logging.jar:
package com.titan;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TestCommonsLogging {
private static Log log_ = LogFactory.getLog(TestCommonsLogging.class);
private TestCommonsLogging() {
}
public static boolean isTraceEnabled() {
return log_.isTraceEnabled();
}
public static boolean isDebugEnabled() {
return log_.isDebugEnabled();
}
public static boolean isInfoEnabled() {
return log_.isInfoEnabled();
}
public static boolean isWarnEnabled() {
return log_.isWarnEnabled();
}
public static boolean isErrorEnabled() {
return log_.isErrorEnabled();
}
public static boolean isFatalEnabled() {
return log_.isFatalEnabled();
}
// dump msg as is..
public static void logTrace(String message) {
log_.trace(message);
}
public static void logDebug(String message) {
log_.debug(message);
}
public static void logInfo(String message) {
log_.info(message);
}
public static void logWarning(String message) {
log_.warn(message);
}
public static void logError(String message) {
log_.error(message);
}
public static void logFatal(String message) {
log_.fatal(message);
}
}
然后,在TravelAgentBean.java中调用TestCommonsLogging,实现日志信息的记录:
public String [] listCabins(int shipID, int bedCount)
{
//.......
if (TestCommonsLogging.isTraceEnabled())
TestCommonsLogging.logTrace("trace log!!!");
if (TestCommonsLogging.isDebugEnabled())
TestCommonsLogging.logDebug("debug log!!!");
if (TestCommonsLogging.isInfoEnabled())
TestCommonsLogging.logInfo("info log!!!");
if (TestCommonsLogging.isWarnEnabled())
TestCommonsLogging.logWarning("warning log!!!");
if (TestCommonsLogging.isErrorEnabled())
TestCommonsLogging.logError("error log!!!");
if (TestCommonsLogging.isFatalEnabled())
TestCommonsLogging.logFatal("fatal log!!!");
//.........
}
最后,设置%JBOSS_HOME%/server/default/conf/log4j.xml,增加:
<!--Limit com.titan log level-->
<category name="com.titan">
<priority value="ERROR"/>
</category>
value可设置为TRACE,DEBUG,INFO,WARNING,ERROR,FATAL.
在Jboss中运行程序,显示日志:
2007-05-02 15:58:04,765 ERROR [com.titan.TestCommonsLogging] error log!!!
2007-05-02 15:58:04,765 FATAL [com.titan.TestCommonsLogging] fatal log!!!
参考资料:
1. JCL官方网站:http://jakarta.apache.org/commons/logging/
2. OReilly Enterprise JavaBeans Fourth Edition