java 日志排包

作者: 砺豪 | 来源:发表于2017-02-19 16:59 被阅读19次

深入理解
如何让基于slf4j框架的日志依赖更干净 http://www.atatech.org/articles/70380

http://blog.csdn.net/yycdaizi/article/details/8276265
https://www.slf4j.org/legacy.html

日志框架:提供日志调用的接口,实际的日志输出委托给日志系统实现。
JCL(Jakarta Commons Logging):比较流行的日志框架,很多框架都依赖JCL,例如Spring等。
SLF4j:提供新的API,初衷是配合Logback使用,但同时兼容Log4j。

日志系统:负责输出日志
Log4j:较早的日志系统,可以单独使用,也可配合日志框架JCL使用
Logback:Log4j的替代产品,需要配合日志框架SLF4j使用
JUL(java.util.logging):JDK提供的日志系统,较混乱,不常用

确定需要具体用哪种日志系统,按上图来依赖jar包,除了要依赖的,其他全部干掉(仲裁掉或者exclusion)

如下slf4j+log4j:
Component
|
| log to Apache Commons Logging
V
jcl-over-slf4j.jar --- (redirect) ---> SLF4j ---> slf4j-log4j12-version.jar ---> log4j.jar ---> 输出日志

看到上面的流程图可能会发现一个有趣的问题,假如在 CLASS_PATH 里同时放置 log4j-over-slf4j.jar 和 slf4j-log4j12-version.jar 会发生什么情况呢?没错,日志会被踢来踢去,最终进入死循环。
最终会导致 StackOverflowError。所以像log4j-over-slf4j.jar AND slf4j-log4j12.jar, jcl-over-slf4j.jar AND slf4j-jcl.jar 都不能一起存在

相关文章

  • java 日志排包

    深入理解如何让基于slf4j框架的日志依赖更干净 http://www.atatech.org/article...

  • mongo-java-driver 中log4j对其日志的管理

    在项目中引用了mongodb-java-driver的jar包后,日志多出很多mongodb操作的日志,导致自己找...

  • java学习笔记-日志篇

    java学习笔记-日志篇-目录 java日志篇(1)-日志概述 java日志篇(2)-JUL(java.util....

  • JDK自带的log工具

    Java.util.logging:JDK标准库中的类,是JDK 1.4 版本之后添加的日志记录的功能包。Java...

  • 服务器随笔

    nohup java -jar XXX.jar > 日志& 部署jar包命令 lsof -i :端口号 查看某个...

  • Java Logging之JUL系列——Log Levels

    JDK自带的日志组件在java.util.logging包中,该组件将日志级别分为如下九种,级别从上到下依次降低,...

  • linux常用命令

    查看进程 ps -ef|grep 进程名后台启动jar包 nohup java -jar &查看启动日志 tai...

  • elasticsearch+kibana搭建

    安装 下载安装包 创建 ES 用户 配置java环境 安装elasticsearch 创建 ES 数据和日志目录 ...

  • SpringBoot笔记(六)日志

    SpringBoot默认使用Logback作为日志记录。 同时也对java.util包的logging和Log4j...

  • 理清Java混乱的日志体系

    理清Java混乱的日志体系 ​ 一次偶然的机会,在一个项目工程中发现很多日志jar包,期初以为都要加入classp...

网友评论

    本文标题:java 日志排包

    本文链接:https://www.haomeiwen.com/subject/yoyjwttx.html