1. commons-logging
# download url
http://commons.apache.org/proper/commons-logging/download_logging.cgi
# 说明
commons-logging 是一个用于日志系统的门面,提供了记录日志的统一接口。
# 查找日志实现库的方式
基于 ClassLoader 在程序运行时动态查找所使用的日志库。
# 所提供的接口(以 INFO 为例)
public void info(Object message);
public void info(Object message, Throwable t);
# 优缺点
不支持 OSGI,原因是 commons-logging 使用了 ClassLoader 寻找和载入底层的日志库,而在 OSGI 中不同的插件使用自己的ClassLoader。
参考
http://www.360doc.com/content/10/1216/23/573136_78845816.shtml
# 使用示例(依赖jar:commons-logging-1.1.3.jar)
package org.demo.logtest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class CommonsLogTest {
private static Log logger = LogFactory.getLog(CommonsLogTest.class);
/**
* @param args
*/
public static void main(String[] args) throws Exception {
logger.info("app start.");
Thread.sleep(1000);
logger.info("app end.");
}
}
2. slf4j
# download url
http://www.slf4j.org/download.html
# 说明
slf4j(Simple Logging Facade for Java) 即简单日志门面,是一套接口而不是具体的日志解决方案。
# 查找日志实现库的方式
slf4j 在编译时就静态绑定了具体的日志实现库,只需要选用不同 jar 即可。
# 所提供的接口(以 INFO 为例)
public void info(String msg);
public void info(String format, Object arg);
public void info(String format, Object arg1, Object arg2);
public void info(String format, Object... arguments);
public void info(String msg, Throwable t);
# 优缺点
提供的接口多且性能较好,参考
http://www.slf4j.org/faq.html#logging_performance
可以很好的支持 OSGI;
比较灵活
# 使用示例(依赖jar:slf4j-api-1.7.5.jar + slf4j-log4j12-1.7.5.jar或其他 slf4j bindings)
package org.demo.logtest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Slf4jLogTest {
private static Logger logger = LoggerFactory.getLogger(Slf4jLogTest.class);
/**
* @param args
*/
public static void main(String[] args) throws Exception {
logger.info("app start.");
Thread.sleep(1000);
logger.info("app end.");
}
}
3. log4j
# 说明
log4j 是一个具体的日志解决方案。通过使用 log4j,我们可以将日志信息输出到控制台、文件、甚至是NT的事件记录器、UNIX Syslog守护进程等,同时可以控制每条日志的输出格式和级别。
# download url
http://logging.apache.org/log4j/1.2/download.html
# 使用示例(依赖jar:log4j-1.2.17.jar)
package org.demo.logtest;
import org.apache.log4j.Logger;
public class Log4jTest {
private static Logger logger = Logger.getLogger(Log4jTest.class);
/**
* @param args
*/
public static void main(String[] args) throws Exception {
logger.info("app start.");
Thread.sleep(1000);
logger.info("app end.");
}
}
# 一个简单的 log4j 配置文件 log4j.properties
# log4j.properties
#
log4j.rootLogger=DEBUG,console
#
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d] %-5p %C - %m%n
# 相关链接
顶君肺的OSGi和Logging
http://sdhjc.blog.163.com/blog/static/17795090200892401928589/
SLF4J 的几种实际应用模式--之一:SLF4J+Log4J
http://unmi.cc/slf4j-log4j
SLF4J 的几种实际应用模式--之二:SLF4J+Logback
http://unmi.cc/slf4j-logback
SLF4J 的几种实际应用模式--之三:JCL-Over-SLF4J+SLF4J
http://unmi.cc/jcl-over-slf4j-slf4j
分享到:
相关推荐
今天我们将聚焦两个流行的日志框架——SLF4J(Simple Logging Facade for Java)和Logback,以及它们与Log4j和Commons-Logging的对比。 SLF4J是一个接口层的日志框架,它提供一个统一的API,允许用户在运行时插入...
在实际开发中,为了规避潜在的问题,有的开发者选择使用其他的日志框架,如SLF4J(Simple Logging Facade for Java),它同样提供了一个抽象层,但比`commons-logging`更现代,且有更明确的绑定机制。 总的来说,`...
SLF4J(Simple Logging Facade for Java)和Apache Commons Logging是两个在Java开发中广泛使用的日志框架。它们提供了一种抽象层,允许开发者在不修改代码的情况下切换不同的日志实现,如Log4j、Java Util Logging ...
它不实现任何具体的日志功能,而是作为一个适配器,允许开发者选择或切换底层的日志实现,如Log4j、Java内置的日志(java.util.logging)或者SLF4J等。这样做的好处在于,开发者可以在不修改代码的情况下,根据项目...
标题 "commons-logging 与 slf4j的桥接器" 涉及到的是Java日志框架中的两个重要组件,以及它们之间的交互。这里主要讨论的是如何将Apache Commons Logging(简称commons-logging)与Simple Logging Facade for Java...
Apache Commons Logging是另一个关键的Java库,它提供了一个统一的日志接口,让开发者可以轻松地切换不同的日志实现,如Log4j、Java内置的java.util.logging或Simple Logging Facade for Java (SLF4J)。这个库的主要...
Commons Logging 是 Apache 组织提供的一款轻量级的日志记录工具库,它的主要目标是为 Java 开发者提供一个简单的接口来使用各种日志框架,如 Log4j、Java Util Logging(JUL)或者 Simple Logging Facade for Java...
最后,`commons-logging.jar`是Apache Commons Logging库,它是一个轻量级的日志接口抽象层,允许开发者选择底层的日志实现,如Log4j、Java内置日志或者SLF4J等。通过使用Commons Logging,开发者可以轻松地更换日志...
Apache Commons Logging(简称Commons Logging)是Apache软件基金会开发的一个日志接口库,它提供了一个统一的日志API,允许开发者选择底层的日志实现,如Log4j、Java内置的日志系统或者其他的第三方日志库。...
通过 Commons Logging,你可以方便地切换日志实现,如Log4j、java.util.logging (JUL) 或者 Simple Logging Facade for Java (SLF4J)。这样,如果你需要更换日志框架,只需要更改配置,而不需要修改代码。 在...
Apache Commons Logging提供了一个抽象层,允许开发者选择底层的日志实现,如Log4j、Java内置的日志系统或者SLF4J等。通过简单的API调用,我们可以在不修改代码的情况下切换不同的日志框架: ```java Log log = ...
Apache Commons Logging 是一个Java日志库,它提供了一个接口,允许开发者使用多种不同的日志框架,如Log4j、java.util.logging(JUL)或Simple Logging Facade for Java(SLF4J)。这个库的核心在于它的灵活性,...
这个库的主要目的是提供一个统一的日志API,使得开发者能够在不关心具体日志实现的情况下,方便地切换不同的日志框架,如Log4j、Java内置的日志系统(java.util.logging)或SLF4J等。 Commons Logging的设计理念是...
在实际应用中,`commons-logging-1.1.1.jar`的使用通常需要配合具体的日志实现库一起,比如Log4j或SLF4J。这可以通过设置`commons-logging.properties`配置文件,或者通过系统属性`java.util.logging.config.file`来...
Commons Logging是Apache软件基金会开发的一个Java日志抽象层,它为各种日志框架提供了一个统一的接口,如Log4j、java.util.logging (JUL) 和Simple Logging Facade for Java (SLF4J)。标题提到的"commons-logging-...
Apache Commons Logging,简称为Commons Logging,是Apache软件基金会开发的一个开源日志组件。这个库的主要目标是为Java应用程序提供一个简单且统一的日志接口,使得开发者可以在不修改代码的情况下,自由地切换到...
2. **自动检测日志实现**:在运行时,Commons Logging会尝试自动检测可用的日志实现,例如Log4j、Java内置日志(java.util.logging.Logger)、Jakarta Commons Logging自身的SimpleLog等。这通过检查类路径中的特定...
在Java世界里,我们常常会遇到多种日志框架并存的情况,比如Jakarta Commons Logging(JCL)和Log4j。本文将详细介绍如何使用`jcl-over-slf4j-1.6.0.jar`这个桥接包,实现从JCL到SLF4J的日志系统转换,并探讨其实际...
简称Commons Log,是Apache软件基金会的一个开源项目,提供了一种统一的日志接口,使得Java开发者能够在不关心具体日志实现的情况下,方便地切换不同的日志框架,如Log4j、java.util.logging(JUL)或Simple Logging...
Apache Commons Logging是一个轻量级的日志记录API,它允许开发者选择在运行时使用他们所偏好的日志框架,如Log4j、java.util.logging或Simple Logging Facade for Java (SLF4J)等。它的主要作用是提供一个统一的...