天天看点

jcl

1 commons-logging

  有两个基本的抽象类:Log(基本记录器)和LogFactory(负责创建Log示例)。当commons-logging.jar被加入到classpath之后,它会合理地猜测你想用的日志工具,让后进行自我设置,用户根本不需要做任何设置。

  默认的LogFactory是按照下列的步骤去发现并决定哪个日志工具将被使用的:

  1 寻找当前factory中名叫org.apache.commons.logging.Log配置属性的值

  2 寻找系统中属性中名叫 org.apache.commons.logging.Log的值

  3 如果应用程序的classpath中有log4j,则使用相关的包装(wrapper)类(Log4JLogger)

  4 如果应用程序运行在jdk1.4的系统中,使用相关的包装类(Jdk14Logger)

  5 使用建议日志包装类(simpleLog)

2 目前常用的是Commoons-logging和Log4j结合使用。步骤如下(这只是个概念上的流程)

2.1 部署日志器

  下载commons-logging.jar和log4j.jar包,然后把他们放到工程lib目录下,引入工程中。

2.2 指定日志器

  在属性文件common-logging.properties中设置实现接口的类。

  #commons-logging.properties文件配置信息

  # org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

  # Must be one of ("trace", "debug", "info", "warn", "error", or "fatal").

  #利用log4j为输出介质

  org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog

  #JDK5 Logger

  #org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

2.3 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);//类似于java的黄色感叹号,期望这类信息能够立即显示在控制台

  log.warn(Object message, Throwable t);

  log.info(Object message);//运行时产生的有意义的时间。期望这类信息能立即显示在控制台上

  log.info(Object message, Throwable t);

  log.debug(Object message);//系统流程中的细节信息。期望这类信息仅写入log文件中

  log.debug(Object message, Throwable t);

  log.trace(Object message);//更加细节的信息。期望这类信息仅写入log文件中

  log.trace(Object message, Throwable t);

3 使用common-logging进行开发(这个是实例) 

  3.1 将common-logging.jar包加入到环境变量或者classpath.

  3.2 导入org.apache.commons.logging.Log;org.apache.commons.logging.LogFactory包

  3.3 代码如下

package sample;
 
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
public class Test {
    private static Log log = LogFactory.getLog(Test.class);
    public void log(){
       log.debug("Debug info.");
       log.info("Info info");
       log.warn("Warn info");
       log.error("Error info");
       log.fatal("Fatal info");
    }
    public static void main(String[] args) {
       Test test = new Test();
       test.log();
    }
}
           
jcl