前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >细说java平台日志组件

细说java平台日志组件

作者头像
编程随笔
发布2019-09-11 15:36:56
1.2K0
发布2019-09-11 15:36:56
举报
文章被收录于专栏:后端开发随笔后端开发随笔

1. java.util.logging

JDK自带日志组件,使用方式简单,不需要依赖第三方日志组件。 支持将日志打印到控制台,文件,甚至可以将日志通过网络打印到指定主机。 相对于第三方独立日志框架来说,支持的日志级别比较少,功能也比较单一。

2. apache commons logging

https://commons.apache.org/proper/commons-logging/index.html Apache Commons Logging简称JCL。 JCL提供了一个轻量级的日志抽象,为应用程序提供统一的日志API。允许用户使用具体的日志实现,如:log4j,Avalon LogKit,java.util.logging。 当然,JCL同时也提供了一个简单的日志实现org.apache.commons.logging.impl.SimpleLog,将日志输出到System.err。 目前JCL已经停止更新了,最新发布版本为1.2 Release - July 2014。

3. log4j

log4j 1.x: http://logging.apache.org/log4j/1.2/manual.html log4j 2.x: https://logging.apache.org/log4j/2.x/ 主流日志框架,2.x版本继续更新,1.x已经停止。建议在应用程序中使用2.x版本。

4. logback

https://logback.qos.ch/ logback是log4j的作者开发一个新的日志组件,原生支持slf4j实现。 官方宣称logback比log4j小巧,且性能更好,支持更多功能,详见:https://logback.qos.ch/reasonsToSwitch.html

5. slf4j

https://www.slf4j.org/ slf4j被设计成一个日志框架,为应用程序提供日志API,具体的日志实现可以交给log4j,java.util.logging,logback。 当然,slf4j本身也提供了一个简单的日志实现Slf4jSimple,但是只能输出INFO及以上级别的日志到System.err。 总结: 1. apache commons logging组件和slf4j都是日志抽象框架,为应用程序提供统一的日志操作API,支持多种日志实现,如:log4j。但是目前apache commons logging已经停止更新,活跃度并没有slf4j高,不建议使用。 2. logback作为slf4j的原生实现,所以理论上最佳的日志组件组合是:slf4j + logback。 3. slf4j提供了统一的日志API,将具体的日志实现交给其他日志框架,这带来了很大的灵活性。

那么问题来了,既然存在这么多的日志框架,那如何选择呢?

实际上,我们通常会选择当前主流的框架,比如log4j。当然,logback宣称比log4j更加高效。 那slf4j在什么场合使用呢?slf4j为其他日志框架提供了统一的日志操作api,这对于sdk这样的基础库开发,非常适合使用slf4j,因为你不知道用户最终会选择什么日志框架。 假如不使用slf4j,而是在sdk中使用了log4j,那只能要求sdk的用户也必须使用log4j,这对于用户来说是不能忍受的。 而slf4j使用同一的日志操作api,将具体的日志框架选择权利留给用户,既可以选择log4j,也可以选择logback,甚至可以使用jdk日志组件。 另外,slf4j的日志参数格式化非常方便,在slf4j中可以直接将日志语句写成:logger.info("hello, {}", "hello world");而在log4j中要实现这个效果必须通过String对象实现: logger.info(String.format("hello, %s", "hello world"));

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-04-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档