- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Logger.getLogger()与LogFactory.getLog()的区别详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Logger来自log4j自己的包。如果用Logger.getLogger,需要一个log4j的jar包,用此方式你只能依log4j:
LogFactory来自common-logging包。如果用LogFactory.getLog,你可以用任何实现了通用日志接口的日志记录器替换log4j,而程序不受影响。apache的common-logging包是通用日志接口,通过这个中间层,你可以随便指定到底用哪个日志系统。增加系统的灵活性。若log4j它不存在, commons-logging 会另行选择其它的日志实现类。 这样保证了程序中不一定要使用log4j这个日志文件了 。
增强灵活性的理由: 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 )”.
基于common-logging的运行方式: 。
package org; import org.apache.commons.logging.Log; import org.apache.log4j.Logger; public class Test extends TagSupport{ public static Log log=LogFactory.getLog(Test.class); public static void test() { log.debug("111"); log.info("125"); log.warn("485"); log.error("error"),
。
} public static void main(String[] a) { Test.test(); } } 。
基于log4j的运行方式 。
import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class TestLog4j { 。
。
static Logger logger = Logger.getLogger(TestLog4j.class); public static void main(String args[]) { PropertyConfigurator.configure("log4j.properties"); logger.debug("Here is some DEBUG"); logger.info("Here is some INFO"); logger.warn("Here is some WARN"); logger.error("Here is some ERROR"); logger.fatal("Here is some FATAL"); } } 。
commons-logging 仅仅对 Log4j( 当然还包括其它 LOG 实现 ) 作了一层包装,具体的日志输出还是在内部转交给身后的 Log4j 来处理,还有log4j会默认的去classes目录下去寻找log4j.properties 文件 。
最后此篇关于Logger.getLogger()与LogFactory.getLog()的区别详解的文章就讲到这里了,如果你想了解更多关于Logger.getLogger()与LogFactory.getLog()的区别详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
下面的代码片段是否有可能将错误记录到数据库或文本文件中?我知道它可以写入 Eclipse 控制台。我是一名 .NET 开发人员,所以我不太确定。 private final static Log lo
我正在尝试在 Maven/Spring 项目上运行 JUnit 并使用 Web 服务客户端 (axis2) 进行测试。 这是有问题的 Web 服务客户端调用: ProServiceLocator lo
我仍在解决 Java 中 Http Builder 的问题。构建器正在使用私有(private)日志。该日志是使用 Logger Factory 生成的。在调试时,我注意到记录器级别为空,因此不会打印
我正在将一些 Java 代码迁移到 Android。代码库包含相当多的 LogFactory.getLog(xxx)。 LogFactory来自org.apache.commons.logging.L
尝试启动 tomcat7 时出现此错误: Buildfile: E:\Workspace\test\config\deploy\build.xml tomcat.start: [java]
我正在使用最新的 STS,刚刚更新:\版本:2.9.0.RELEASE内部版本号:201203011000 我已经将 spring-framework-3.1.1.RELEASE 下载到一个目录中。我
我是 JasperReports 的新手,我想将 JasperReports 集成到我的 Java 程序中,所以当我点击打印按钮时,程序会显示报告。但是当我点击按钮时,我得到了一个NoClassDef
在部署 dwr Web 应用程序时,我不断收到此错误。 我不知道为什么会这样。我无法运行我的任何 DWR 示例项目。 除此之外,我们得到这个 ClassNotFound 错误。这里有什么概念? 这是一
当我在 Glassfish 4.1 服务器上运行我的 rest api 点时,我面临以下 NoClassDefFoundError,即使我将耳朵与 commons-logging 作为依赖项一起发送,
我正在使用 My-eclipse 并做一个 struts 项目,没有语法错误,但在启动 tomcat 服务器时,控制台中出现以下错误。 java.lang.ClassNotFoundException
我得到下一个错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogF
当我使用最新的 tcsever 2.9.2 时,出现此错误。 错误 | wrapper | 2014/01/21 19:06:47 | JVM 在加载应用程序时退出。 信息 |虚拟机 4 | 2014
当我启动我的 Web 应用程序时,我收到 java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory。 正如您在下图中看到
当我运行应用程序时出现异常 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/
当我为 android 启用 proguard 时,proguard 将混淆应用程序中包含的所有 jar。这些 jar 包括: libraryjars lib/Analytics_Android_SD
我有一个使用 Spring 运行 json Web 服务的 Maven 项目。该项目在 NetBeans 中运行良好。它被编译成 jar 文件,并且 jar 文件在 Ubuntu VM 中运行良好。但
我使用 cygwin 在 Windows 中安装 Hadoop-0.20.2。如果我跑 $ bin/hadoop version Hadoop 0.20.2 Subversion https://s
错误: E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 Process: com.azail.cart.debug, PID: 2403
我可以知道使用 org.apache.commons.logging.LogFactory.getLog 的最佳实践是什么吗? 对我来说,我按以下方式使用它: public class A {
我知道这是包的区别 1) org.apache.log4j.Logger logger = Logger.getLogger(clazz); 2) org.apache.commons.logging
我是一名优秀的程序员,十分优秀!