java 日志框架日志系统关系详解
2017-05-22 12:01
435 查看
java 日志框架日志系统关系详解
刚刚接触java的日志框架和日志系统时,完全搞不清楚他们之间的关系,也不是很清楚,自己使用的具体是哪种框架那种系统。今天好好总结一下他们之间的关系。
在说明关系前,先明确两个概念:
1. 日志系统:日志的具体实现。经典的有log4j;jdk自带的有java.util.Logging; 还有log4j作者推出的被高度评价的logBack等等。
2. 日志框架:如果只存在一种日志系统,日志框架完全没有必要存在(logBack无法独立使用),但事与愿违。为了解决多个日志系统的兼容问题,日志框架应运而生。主流的日志框架有commons-logging和sl4j。
commons-logging是apache推出的日志框架,commons-logging只是规定了日志的接口,其设计原理类似于jdk中servlet和jdbc的设计。主流的日志系统都实现了commons-logging定义的接口,这样就看通过commons-logging统一的使用的日志,而不用关系具体使用的是哪种日志系统。Commons-logging+log4j : 经典的一个日志实现方案。出现在各种框架里。如spring 、webx 、ibatis 等等。直接使用log4j 即可满足我们的日志方案。但是一般为了避免直接依赖具体的日志实现,一般都是结合commons-logging
来实现。常见代码如下:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static Log logger = LogFactory.getLog(CommonsLoggingTest.class);
Logback : LOGBack 作为一个通用可靠、快速灵活的日志框架,将作为Log4j 的替代和SLF4J 组成新的日志系统的完整实现。官网上称具有极佳的性能,在关键路径上执行速度是log4j 的10 倍,且内存消耗更少。具体优势见:
http://logback.qos.ch/reasonsToSwitch.html
Logback必须配合sl4j使用。由于logback和sl4j是同一个作者,其兼容性不言而喻。但sl4j面临与其他日志框架和日志系统的兼容性问题。
1. JCL-over-sl4j:它重写了commons-logging的API,并将所有日志输出转向sl4j。这样就避免了两套日志框架并存的问题。由于JCL-over-SLF4J和原来的commons-logging具有完全相同的API,因此两者是不能共存的。
2. sl4j-*12: 具体的如 sl4j-lo4j12 其实现了sl4j的接口并将日志引入log4j。
一图胜千言:
刚刚接触java的日志框架和日志系统时,完全搞不清楚他们之间的关系,也不是很清楚,自己使用的具体是哪种框架那种系统。今天好好总结一下他们之间的关系。
在说明关系前,先明确两个概念:
1. 日志系统:日志的具体实现。经典的有log4j;jdk自带的有java.util.Logging; 还有log4j作者推出的被高度评价的logBack等等。
2. 日志框架:如果只存在一种日志系统,日志框架完全没有必要存在(logBack无法独立使用),但事与愿违。为了解决多个日志系统的兼容问题,日志框架应运而生。主流的日志框架有commons-logging和sl4j。
commons-logging是apache推出的日志框架,commons-logging只是规定了日志的接口,其设计原理类似于jdk中servlet和jdbc的设计。主流的日志系统都实现了commons-logging定义的接口,这样就看通过commons-logging统一的使用的日志,而不用关系具体使用的是哪种日志系统。Commons-logging+log4j : 经典的一个日志实现方案。出现在各种框架里。如spring 、webx 、ibatis 等等。直接使用log4j 即可满足我们的日志方案。但是一般为了避免直接依赖具体的日志实现,一般都是结合commons-logging
来实现。常见代码如下:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static Log logger = LogFactory.getLog(CommonsLoggingTest.class);
Logback : LOGBack 作为一个通用可靠、快速灵活的日志框架,将作为Log4j 的替代和SLF4J 组成新的日志系统的完整实现。官网上称具有极佳的性能,在关键路径上执行速度是log4j 的10 倍,且内存消耗更少。具体优势见:
http://logback.qos.ch/reasonsToSwitch.html
Logback必须配合sl4j使用。由于logback和sl4j是同一个作者,其兼容性不言而喻。但sl4j面临与其他日志框架和日志系统的兼容性问题。
1. JCL-over-sl4j:它重写了commons-logging的API,并将所有日志输出转向sl4j。这样就避免了两套日志框架并存的问题。由于JCL-over-SLF4J和原来的commons-logging具有完全相同的API,因此两者是不能共存的。
2. sl4j-*12: 具体的如 sl4j-lo4j12 其实现了sl4j的接口并将日志引入log4j。
一图胜千言:
相关文章推荐
- java 日志框架日志系统关系详解
- Java日志系统集成时各jar包关系图
- java日志系统详解(发展史)
- Java日志系统框架的设计与实现
- 一种Java日志系统框架的设计与实现(转)
- Java日志框架:logback详解
- java日志系统详解
- java日志系统详解
- Java日志记录框架Logback配置详解(企业级应用解决方案)
- 最全Java日志框架详解
- java日志系统详解
- java日志系统详解-转载
- java日志系统框架整理(转载)
- java日志框架与日志系统
- java日志框架与日志系统
- java日志系统详解
- Java日志框架与日志系统
- Java Collection集合框架关系详解
- 一种Java日志系统框架的设计与实现
- java中的io系统详解