jakarta Commons Logging(JCL)组件提供一个日志接口,它是一个轻量级的日志工具,并且不依赖于具体的日志实现工具,它为中间件或日志工具的开发者提供一个抽象接口。
在使用commons Logging 时,它会自动寻找系统中存在的日志工具并自行进行合理设置,用户一般来说不用进行设置。
寻找当前factory中org.apache.commons.logging.log属性所指定的值
寻找系统属性org.apache.commons.logging.Log所指的文件
如果应用程序的classpath中有log4j,则使用相关的wrapper类,即:log4jLogger
如果在JDK1.4使用相关wrapper:jdk14Logger
使用默认的简易日志包装类
JCL有两个基本抽象类:log、LogFactory
public class temp{
//得到基本记录器
private static Log log = LogFactory.getLog(temp.class);
//日志被送往记录器,这个过程中要考虑级别和方法。
} 通常情况下,记录器的级别不应低于info.也就是说,通常情况下debug的信息不应被写入log文件中。
工作机理
JCL采用的记录器的不同其设置内容也不同。Log4J是默认首选记录器,对其设置可通过系统属性(system properties)或一个属性文件进行设置,下面是其设置参数。
在使用commons Logging 时,它会自动寻找系统中存在的日志工具并自行进行合理设置,用户一般来说不用进行设置。
寻找当前factory中org.apache.commons.logging.log属性所指定的值
寻找系统属性org.apache.commons.logging.Log所指的文件
如果应用程序的classpath中有log4j,则使用相关的wrapper类,即:log4jLogger
如果在JDK1.4使用相关wrapper:jdk14Logger
使用默认的简易日志包装类
JCL有两个基本抽象类:log、LogFactory
public class temp{
//得到基本记录器
private static Log log = LogFactory.getLog(temp.class);
//日志被送往记录器,这个过程中要考虑级别和方法。
- log.fatal(Object message);
- log.fatal(Object message, Throwable t);
- log.error(Object message);
- log.error(Object message, Throwable t);
- log.warn(Object message);
- log.warn(Object message, Throwable t);
- log.info(Object message);
- log.info(Object message, Throwable t);
- log.debug(Object message);
- log.debug(Object message, Throwable t);
- log.trace(Object message);
- log.trace(Object message, Throwable t);
- log.isFatalEnabled();
- log.isErrorEnabled();
- log.isWarnEnabled();
- log.isInfoEnabled();
- log.isDebugEnabled();
- log.isTraceEnabled();
} 通常情况下,记录器的级别不应低于info.也就是说,通常情况下debug的信息不应被写入log文件中。
工作机理
- 生命周期
JCL LogFactory必须实现建立/断开到日志工具的连接,实例化/初始化/解构一个日志工具.
- 异常处理
JCL Log 接口没有指定任何异常处理,对接口的实现必须捕获并处理异常。 - 多线程
JCL Log 和 LogFactory 的实现,必须确保任何日志工具对并行的要求.
JCL采用的记录器的不同其设置内容也不同。Log4J是默认首选记录器,对其设置可通过系统属性(system properties)或一个属性文件进行设置,下面是其设置参数。