获取Log对象
要使用JCL SPI,包含下面的导入语句:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
在类定义中,如下声明并初始化一个log
属性:
public class CLASS { private Log log = LogFactory.getLog(CLASS.class); ... ;
注意,对于应用程序代码而言,将log变量声明为“static”会是更高效的做法,因为此类的所有实例都共享同一个Log对象,这也是推荐的做法。但是,如果这个类通过“共享的”类加载器在诸如servlet或者j2ee容器或者类似环境中部署时,则会有安全问题,因为这可能会导致本应相互独立的应用程序访问同一个Log实例对象。所以在“库”类型的项目中应该避免将log变量声明为“static”。
记录日志信息
日志消息通过调用日志器(log变量)中对应于不同日志级别的方法来记录。org.apache.commons.logging.Log接口提供了以下的方法用于记录日志:
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();
转载于:https://blog.51cto.com/ramln/687752