log4j与commons-logging,slf4j的关系(转)

前面有一篇日志中简单的介绍了 log4j,同时也介绍了它与commons-logging的关系,但是突然冒出来一个slf4j,并且slf4j有取代commons-logging的趋势,所以,我们可以推知slf4j与commons-logging的作用应该

相差不大的。 好,下面开始先讲讲slf4j。

1.slf4j

他只提供一个核心slf4j api(就是slf4j-api.jar包),这个包只有日志的接口,并没有实现,所以如果要使用就得再给它提供一个实现了些接口的日志包,比 如:log4j,common logging,jdk log日志实现包等,但是这些日志实现又不能通过接口直接调用,实现上他们根本就和slf4j-api不一致,因此slf4j又增加了一层来转换各日志实 现包的使用,当然slf4j-simple除外。

 

slf4j+log4j组合使用模式: 1. slf4j-api-1.5.11.jar 2. slf4j-log4j12-1.5.11.jar 3. log4j-1.2.15.jar 4. log4j.properties(也可以是 log4j.xml)

 

JCL+Log4J组合使用模式(即commons-logging+log4j): 1. commons-logging-1.1.jar 2. log4j-1.2.15.jar 3. log4j.properties

 

2.不同的获取logger的方式

log4j:

import org.apache.log4j.Logger;

Logger logger= Logger.getLogger(xx.class);

 

slf4j+log4j:

import  org.slf4j.Logger;

import  org.slf4j.LoggerFactory;

Logger logger = LoggerFactory.getLogger(xx.class);

 

jcl+log4j:

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

private static Log log = LogFactory.getLog(xx.class);

 

 

3.总结

 

总的来说,slf4j与commons-logging只是一个日志门面,实际还是要依赖真正的日志库log4j,虽然slf4j和commons-loggins自带了日志库,但是毕竟log4j才是最强大的。
http://www.cnblogs.com/zhuawang/p/3999132.html

时间: 2024-09-18 17:32:46

log4j与commons-logging,slf4j的关系(转)的相关文章

深入源码之Commons Logging

自从七月份去走川藏后,已经好几个月没有更新博客了.其实八月底从拉萨回来后一直在Spring的代码,也想写几篇关于Spring源码的解读,可惜Spring实在是太复杂了,花了我一个多月的时间,框架大体流程是有头绪了,但是具体实现和各个模块的具体细节还都不是很清楚,迟迟不敢动笔.其实原本我不想回到Logging这一块,我知道光看完Log4J的代码还不够,也感觉Log在系统中其实占据了蛮重要的位置(虽然很多人都没有意识到),不过一般Log框架使用简单,遇到问题也比较少,即使看完源码对实际工作也帮助不大

Commons Logging存在的ClassLoader问题详解

在看Java Logging相关的框架.代码.资料的时候,一直有听说Commons Logging存在ClassLoader相关的问题,但是看它的实现代码(1.1.1版本),对ClassLoader做了非常详细的查找:用了Thread Context ClassLoader.System ClassLoader.以及LogFactoryImpl本身的ClassLoader,感觉上已经很全面了.上周末有幸找到一篇Ceki Gülcü写文章,详细介绍了Commons Logging中存在的Class

Taxonomy of class loader problems encountered when using Jakarta Commons Logging(转)

  Acknowledgments I would like to thank Jacob Kjome for reviewing early drafts of this document. His comments helped to clarify several important points. Jake also keeps reminding us on the log4j-dev mailing list that the child-parent delegation mode

myeclipse-MyEclipse8.5报错org.apache.logging.slf4j

问题描述 MyEclipse8.5报错org.apache.logging.slf4j 一大串循环错误如下: at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41) at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:51) 是包冲突,版本问题,还是少包? 解决方案 少包st

java日志和SLF4J随想

本文漫谈java中的日志:以前怎样使用日志,以及类似SLF4J的库为我们带来了什么. 日志是创建软件时的基本需求之一,常见的用例如: 软件开发过程中的调试 生产环境下诊断bug 出于安全目的而跟踪访问 创建统计使用的数据 等等 无论用途为何,日志都应该是详尽.可配置和可靠的.历史 在早期,java日志使用System.out.println(), System.err.println() 或 e.printStackTrace().调试信息输出到标准输出System.out,错误信息输出到标准错

高性能的智能日志

[编者按]本文作者是 Archanaa Panda ,从 2000 以来一直在软件开发(构架.设计和编程)团队担任 Java / JavaEE 构架师,目前立志于做一个与时俱进的独立的顾问架构师.在本篇文章中,作者通过多个方面为生产环节的日志提供建议和指导,最后还介绍了一个高性能的智能日志技术,帮助大家构建高性能的智能日志框架.    1.摘要 当应用在生产过程中,日志通常处于开发周期的次要位置,但实际上高性能的日志可能成为开发团队的重要生命线.在此我们假设读者已熟悉了各种日志框架,如 Log4

[转载]java日志框架log4j详细配置及与slf4j联合使用教程

一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到"build path" 1 2 3 4 5 <dependency>     <groupId>log4j</groupId>     <artifactId>log4j</artifactId>     <version>1.2.17</version> </dep

《SLF4J官方文档》SLF4J-FAQ 常见问题解答(一)

一般性问题 什么是SLF4J? 什么时候应该使用SLF4J? SLF4J仍是另一个日志外观吗? 如果SLF4J可修复JCL,那为什么不在JCL里加入修复而是创建一个新项目? 使用SLF4J时,我必须重新编译我的应用以转换到一个不同的日志系统吗? SLF4J的要求是什么? SLF4J向后兼容版本吗? 使用SLF4J时遇到访问权限错误,原因是什么? 为什么SLF4J是在X11类型许可证下许可而不是Apache软件许可? 10.在哪里能获得特定的SLF4J绑定? 11.我的库应该尝试配置logging

SLF4J user manual 专题

System Out and Err Redirected to SLF4J The sysout-over-slf4j module allows a user to redirect all calls to System.out and System.err to an SLF4J defined logger with the name of the fully qualified class in which the System.out.println (or similar) ca