Java 的那些日志框架们

2020-01-12 00:29:32 +08:00
 tunzao

http://tunzao.me/articles/java-logging/

4018 次点击
所在节点    Java
7 条回复
ericgui
2020-01-12 08:52:29 +08:00
阿里有日志的库吗?
xy2401
2020-01-12 10:17:16 +08:00
内容有点少啊。看个开头发现下面没有了
hantsy
2020-01-12 13:19:46 +08:00
大部分时间调用的 API 只有 Sf4l,JUL。Backend 比较多的有是 Logback,JUL,也有用过 Log4j,JBoss Logging(JBossr 的一个 Logging 套)。

Spring 核心由于历史原因,本来依赖外部 JCL。

Spring 5.0 内部重写那些接口(不需要依赖 JCL 了),将调用 JCL 操作 Delegate 到运行时 Logging,Backend 可以是 sf4l,log4j 1/2,logback 等。
tunzao
2020-01-12 15:10:26 +08:00
@xy2401 因为不是要详细介绍各个日志框架,所以没有写的太细,扩展阅读可以看下文末的参考
tunzao
2020-01-12 15:20:12 +08:00
@hantsy 如果我没有理解错,其实 spring 5 是把 JCL 替换成了 slf4j,依托 slf4j 已经实现的诸多 adapter,从而实现了对目前常用日志实现框架的支持
hantsy
2020-01-12 21:03:36 +08:00
@tunzao 不是。为了保持兼容,用 JCL 一样的接口,但自己另外实现了。

https://github.com/spring-projects/spring-framework/blob/master/spring-jcl/src/main/java/org/apache/commons/logging/LogFactory.java

其中主要调用 LogAdaptor,看看其源代码就明白了。https://github.com/spring-projects/spring-framework/blob/master/spring-jcl/src/main/java/org/apache/commons/logging/LogAdapter.java

static {
if (isPresent(LOG4J_SPI)) {
if (isPresent(LOG4J_SLF4J_PROVIDER) && isPresent(SLF4J_SPI)) {
// log4j-to-slf4j bridge -> we'll rather go with the SLF4J SPI;
// however, we still prefer Log4j over the plain SLF4J API since
// the latter does not have location awareness support.
logApi = LogApi.SLF4J_LAL;
}
else {
// Use Log4j 2.x directly, including location awareness support
logApi = LogApi.LOG4J;
}
}
else if (isPresent(SLF4J_SPI)) {
// Full SLF4J SPI including location awareness support
logApi = LogApi.SLF4J_LAL;
}
else if (isPresent(SLF4J_API)) {
// Minimal SLF4J API without location awareness support
logApi = LogApi.SLF4J;
}
else {
// java.util.logging as default
logApi = LogApi.JUL;
}
}
tunzao
2020-01-13 10:03:01 +08:00
@hantsy 👍

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/637185

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX