Logger.getLogger和LogFactory.getLog的区别

Logger来自log4j自己的包。如果用Logger.getLogger,需要一个log4j的jar包,用此方式你只能依靠log4j:

private static Logger logger = Logger.getLogger(“paymentLog”);

LogFactory来自common-logging包。如果用LogFactory.getLog,你可以用任何实现了通用日志接口的日志记录器替换log4j,而程序不受影响。apache的common-logging包是通用日志接口,通过这个中间层,你可以随便指定到底用哪个日志系统。增加系统的灵活性。若log4j它不存在, commons-logging 会另行选择其它的日志实现类。 这样保证了程序中不一定要使用log4j这个日志文件了

private static Log logger = LogFactory.getLog(“payMonitor”);

增强灵活性的理由: 
1)首先在 classpath 下寻找自己的配置文件 commons-logging.properties ,如果找到,则使用其中定义的 Log 实现类;

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

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

4) 否则,使用 JDK 自身的日志实现类( JDK1.4 以后才有日志实现类);

5) 否则,使用 commons-logging 自己提供的一个简单的日志实现类 SimpleLog ;

为了简化配置 commons-logging ,一般不使用 commons-logging 的配置文件,也不设置与 commons-logging 相关的系统环境变量,而只需将 Log4j 的 Jar 包放置到 classpash 中就可以了。这样就很简单地完成了 commons-logging 与 Log4j 的融合。

根据不同的性质,日志信息通常被分成不同的级别,从低到高依次是:“调试( DEBUG )”“信息( INFO )”“警告( WARN )”“错误(ERROR )”“致命错误( FATAL )”。

时间: 2024-10-05 10:17:26

Logger.getLogger和LogFactory.getLog的区别的相关文章

Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)

Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j) 博客分类: Java综合 第一.Logger.getLogger()和LogFactory.getLog()的区别     1.Logger.getLogger()是使用log4j的方式记录日志:  2.LogFactory.getLog()则来自apache的common-logging包. common-logging组件:         Jakarta Commons

java日志记录之Logger.getLogger()和LogFactory.getLog()的区别

最近研究项目代码时发现同一个项目用到关于日志的两种不同写法: Logger.getLogger()和LogFactory.getLog()的区别 1.Logger.getLogger()是使用log4j的方式记录日志:API文档 2.LogFactory.getLog()则来自apache的common-logging包.API文档 根据不同的性质,日志信息通常被分成不同的级别,从低到高依次是:"调试( DEBUG )""信息( INFO )""警告( W

log4j中Logger.getLogger与LogFactory.getLog的区别

Logger来自log4j自己的包.如果用Logger.getLogger,需要一个log4j的jar包,用此方式你只能依靠log4j; LogFactory来自common-logging包.如果用LogFactory.getLog,你可以用任何实现了通用日志接口的日志记录器替换log4j,而程序不受影响. apache的common-logging包是通用日志接口,通过这个中间层,你可以随便指定到底用哪个日志系统.增加系统的灵活性.若log4j它不存在, commons-logging 会另

Logger.getLogger()和 LogFactory.getLog()

Logger.getLogger()和LogFactory.getLog()的区别:    1.Logger.getLogger()是使用log4j的方式记录日志:2.LogFactory.getLog()则来自apache的common-logging包. 一 :为什么同时使用commons-logging和Log4j?                               Commons-logging的目的 是为“所有的Java日志实现”提供一个统一的接口,它自身的日志功能平常弱(只

Logger之Logger.getLogger(CLass)技巧代替system.out.print

---恢复内容开始--- 尊重原创:http://www.cnblogs.com/zxf330301/p/5876117.html 之前一直在使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 在项目中使用Log4J并不是一件困难的事情,简单粗暴的方式就是在每个类A中声明一个Logger私有属性 private static Logger logger = Logge

Logger之Logger.getLogger(CLass)

之前一直在使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 在项目中使用Log4J并不是一件困难的事情,简单粗暴的方式就是在每个类A中声明一个Logger私有属性 private static Logger logger = Logger.getLogger(A.class); private static Logger logger = Logger.getLog

Logger.getLogger(*.class)源码分析

//补偿:http://blog.csdn.net/anlina_1984/article/details/5313023//方法 protected static Logger logger = Logger.getLogger(PropertiesConfigLocalLoader.class); //进去这个 package org.apache.log4j; public class Logger extends Category { //只列出这个静态方法 static public

java中的 private Logger log=Logger.getLogger(this.getClass());

this.getClass()得到什么? this 表示当前对象的引用: getClass() 是 java.lang.Object 中的方法,它返回一个对象的运行时类: this.getClass() 就是返回当前对象的运行时类. Logger.getLogger(this.getClass())又得到什么? 他得到一个Logger对象,这个Logger将监视this.getClass()这个运行时类,这个运行时类里面你可能创建了log.info(""), log.debug(&qu

Log4j写日志文件使用详解

Log4j输出到控制台成功,写入文件失败 - Log4j和commons log的整合 一.今天在使用commongs-logging.jar和log4j.properties来输出系统日志的时候,发现日志能够成功的输出到控制台,但是去不能写到目的文件中,具体的步骤和原因如下: 1. 只在项目中引入commons-logging.jar commons-logging.jar 使用 Log logger = LogFactory.getLogger(XXX.class), 如果有log4j.pr