日志框架

日志框架主要分为两类

  • 日志门面:jcl、slf4j、jboss-logging
  • 日志实现:log4j、log4j2、logback、jul

log4j是apache的一个开源项目

logback是一个成熟的框架,由log4j的作者写成,logback分成三个模块:

  • logback-core是其他两个模块的基础模块
  • logback-classic是log4j的一个改良版本,logback-classic完整实现slf4j api使你可以很方便的更换成其他日志系统如log4j或jul
  • logback-access访问模块与servlet容器集成提供通过http来访问日志的功能

log4j2已经不仅仅是log4j的一个升级版本了,而是从头到尾被重写的,可以认为这其实是两个完全不同的框架

jul是java.util.logging包的简称

日志门面是门面模式的一个典型的应用

门面模式(Facade Pattern),也称之为外观模式,其核心为:外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用

日志实现就是对接口的实现

不建议直接使用日志系统(log4j、logback)中的api,而应依赖使用日志框架slf4j中的api,使用门面模式中的日志框架,有利于维护和各个类的日志处理方式统一

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

private static final Logger logger = LoggerFactory.getLogger(Abc.class);

比如,一开始项目用的是log4j的实现,后来发现log4j的性能太差了,想换成logback,由于我们代码中都是面向slf4j接口的,这样我们只要吧log4j的依赖换成logback就可以了

slf4j即java简易日志门面(Simple Logging Facade for Java),目前主要支持jul、log4j、logback等框架,其作者就是log4j和logback的作者,他宣称slf4j比log4j更有效率,比jcl(Apache Commons Logging)简单、稳定,更常用

log4j提供trace, debug, info, warn, error, fatal六种日志级别,但是slf4j认为error和fatal并没有实质上的区别,所以拿掉了fatal级别,只剩下其他五种,在org.slf4j.event包下的Level枚举类中可以看到

commons-logging:Apache Commons Logging是一个基于java的日志记录使用程序,用于日志记录和其他工具的编程模型,和slf4j功能类似

posted @ 2019-09-14 15:54  请叫我小老弟  阅读(225)  评论(0编辑  收藏  举报