什么罐子

Logger来自log4j自己的包。如果使用Logger.getLogger,需要log4j的jar包。这样的话,你只能依靠log4j:

LogFactory来自公共日志包。如果使用LogFactory.getLog,可以用任何实现通用日志接口的logger替换log4j,程序不会受到影响。Apache的common-logging包是一个通用的日志接口,通过它您可以随意指定使用哪个日志系统。增加系统的灵活性。如果log4j不存在,commons-logging将选择另一个日志实现类。这确保了log4j不一定在程序中使用。

增加灵活性的原因:

1)首先在classpath下查找自己的配置文件commons-Logging.properties,如果找到了,就用其中定义的日志实现类;

2)如果找不到commons-Logging.properties的文件,检查系统环境变量org.apache.commons.logging.Log是否已经定义,如果找到,使用定义的日志实现该类;

3)否则,检查类路径中是否有Log4j的包,如果有,自动使用Log4j作为日志实现类;

4)否则使用JDK本身的日志实现类(日志实现类将在JDK1.4之后可用);

5)否则,使用commons-logging提供的简单日志实现simple log类;

为了简化commons-logging的配置,一般不使用commons-logging的配置文件,也不设置与commons-logging相关的系统环境变量,只把Log4j的Jar包放入classpash。这样,commons-logging和Log4j的集成就简单完成了。

根据不同的属性,日志信息通常分为不同的级别,从低到高依次为:调试、信息、警告、错误和致命错误。

基于公共日志的操作模式:

包装组织;

导入org . Apache . commons . logging . log;

导入org . Apache . log4j . logger;

公共类测试扩展标记支持{

公共静态日志Log = Log factory . get Log(test . class);

公共静态无效测试()

{

log . debug(" 111 ");

log . info(" 125 ");

log . warn(" 485 ");

log . error(" error ");

}

公共静态void main(String[] a)

{

test . test();

}

}

基于log4j的运行模式

导入org . Apache . log4j . logger;

导入org . Apache . log4j . property configurator;

公共类TestLog4j {

static Logger Logger = Logger . get Logger(testlog 4j . class);

公共静态void main(String args[]) {

property configurator . configure(" log4j . properties ");

logger.debug("下面是一些调试");

logger.info("这里是一些信息");

logger.warn("这里是一些WARN ");

logger.error("这里有一些错误");

logger.fatal("下面是一些致命的");

}

}

-

Commons-LOGging只包装log4j(当然也包括其他日志实现),具体的日志输出交给它后面的Log4j处理,Log4j默认会去classes目录下找log4j.properties文件。