java install4j 日志_Java日志介绍(6,end)-SLF4J

Simple Logging Facade for Java(SLF4J)提供各种日志框架(如java.util.log、logback、log4j)的抽象,允许用户在部署时引入所需的日志框架;功能与commons-logging很类似,但SLF4J适配的日志框架更广。文中所使用到的软件版本:Java 1.8.0_191、slf4j 1.7.29。

1、SLF4J绑定日志框架

SLF4J提供多个"SLF4J绑定"的jar包,每个绑定对应于一个受支持的日志框架。SLF4J绑定日志框架时应该只绑定一个,否则很难预期使用哪一个。

1.1、slf4j-log4j12

绑定log4j 1.2,还需引入log4j 1.2.x的jar包。

org.slf4j

slf4j-log4j12

1.7.30

1.2、slf4j-jdk14

绑定java.util.logging(jul)

org.slf4j

slf4j-jdk14

1.7.30

1.3、slf4j-nop

绑定nop,丢弃所有日志。

org.slf4j

slf4j-nop

1.7.30

1.4、slf4j-simple

绑定为简单实现,它将所有事件输出到 System.err。仅打印级别INFO和更高级别的消息。此绑定在小型应用程序上下文中可能很有用。

org.slf4j

slf4j-simple

1.7.30

1.5、slf4j-jcl

绑定Jakarta Commons Logging,将所有SLF4J日志记录委派给JCL。

org.slf4j

slf4j-jcl

1.7.30

1.6、logback-classic

logback本身就实现了绑定slf4j。

ch.qos.logback

logback-classic

1.2.3

下面是一个总体的示意图:

5c216d933615e667529452cb6e27755e.png

1.7、log4j-slf4j-impl(或log4j-slf4j18-impl)

绑定log4j2,由于log4j2出现较晚,该jar包不是SLF4J提供的,由log4j2自己实现提供。

org.apache.logging.log4j

log4j-slf4j-impl

2.12.1

org.apache.logging.log4j

log4j-slf4j18-impl

2.12.1

log4j-slf4j-impl用于SLF4J 1.7.x 或更早版本,log4j-slf4j18-impl用于SLF4J 1.8.x或更新版本。

2、其他日志转为SLF4J

这边是把具体的日志转为SLF4J来输出日志,不能和1中绑定的对应jar同时使用,否则会造成日志事件的死循环。

2.1、jcl-over-slf4j

jcl转为slf4j,用jcl-over-slf4j替换commons-logging的jar包,不能和slf4j-jcl同时使用。

org.slf4j

jcl-over-slf4j

1.7.30

2.2、log4j-over-slf4j

log4j转为slf4j,用log4j-over-slf4j替换log4j12的jar包,不能和slf4j-log4j12同时使用。

org.slf4j

log4j-over-slf4j

1.7.30

2.3、jul-to-slf4j

jul转为slf4j,引入jul-to-slf4j的jar包,不能和slf4j-jdk14同时使用。

org.slf4j

jul-to-slf4j

1.7.30

在使用jul记录日志前加入如下两行代码即可转为slf4j输出:

SLF4JBridgeHandler.removeHandlersForRootLogger();

SLF4JBridgeHandler.install();

下面是一个总体的示意图:

11966b296e430c3fbde0e1ae8c60de84.png

2.4、log4j-to-slf4j

log4j2转为slf4j,引入log4j-to-slf4j的jar包,该jar包不是SLF4J提供的,由log4j2自己实现提供;不能和log4j-slf4j-impl(或log4j-slf4j18-impl)同时使用。

org.apache.logging.log4j

log4j-to-slf4j

2.12.1

3、实际使用

packagecom.inspur.demo.log;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;/*** SLF4J使用示例*/

public classSLF4JCase {public static final Logger logger = LoggerFactory.getLogger(SLF4JCase.class);public static void main(String[] args) throwsException {

System.out.println(logger.getClass());

logger.debug("This is debug message.");

logger.warn("This is warn message.");for (int i = 0; i < 100; i++) {

logger.info("This is info message:" +i);

}

}

}

1、引入slf4j、logback的jar包,并使用logback.xml来配置logback,运行代码可以看到日志格式跟logback.xml中配置的一致。logback的配置可以参考:Java日志介绍(3)-Logback

org.slf4j

slf4j-api

1.7.29

ch.qos.logback

logback-classic

1.2.3

2、引入slf4j、log4j、slf4j-log4j12的jar包,并使用log4j.properties来配置log4j,运行代码可以看到日志格式跟log4j.properties中配置的一致。log4j的配置可以参考:Java日志介绍(2)-Log4j

org.slf4j

slf4j-api

1.7.29

log4j

log4j

1.2.17

org.slf4j

slf4j-log4j12

1.7.29

如果要使用其他日志框架,可以自行加入相关的jar并运行代码测试,这里就不一一演示了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值