当前位置: 首页 > news >正文

JavaSE--日志

参考

https://www.cnblogs.com/hanszhao/p/9754419.html

https://www.cnblogs.com/chenhongliang/p/5312517.html

 

Java常用日志框架

现今,Java日志领域被划分为两大阵营:

  • Commons Logging阵营
  • Slf4j阵营

Commons Logging在Apache大树的笼罩下,有很大的用户基数。

但有证据表明,形式正在发生变化。

2013年底有人分析了GitHub上30000个项目,统计出了最流行的100个Libraries,可以看出Slf4j的发展趋势更好.

java_populor_jar

 

Log4j

1996年早期,欧洲安全电子市场项目组决定编写它自己的程序跟踪API(Tracing API)。经过不断的完善,这个API终于成为一个十分受欢迎的日志软件包,即Log4j。后来Log4j成为Apache基金会项目中的一员。

Apache Log4j是一个基于Java的日志记录工具。它是由Ceki Gülcü首创的.

当时Log4j近乎成了Java社区的日志标准。据说Apache基金会还曾经建议Sun引入Log4j到java的标准库中,但Sun拒绝了。

 

Jul

2002年Java1.4发布,Sun推出了自己的日志库JUL(Java Util Logging),其实现基本模仿了Log4j的实现

在JUL出来以前,Log4j就已经成为一项成熟的技术,使得Log4j在选择上占据了一定的优势。

 

Jakarta Commons Logging

Apache推出的Jakarta Commons Logging(JCL)只是定义了一套日志接口(其内部也提供一个Simple Log的简单实现),支持运行时动态加载日志组件的实现.

也就是说,在你应用代码里,只需调用Jakarta Commons Logging的接口,底层实现可以是Log4j,也可以是Java Util Logging。

 

Commons Logging

Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging。

 

Log4j 2

Apache Log4j 2是apache开发的一款Log4j的升级产品

Apache眼看有被Logback反超的势头,于2012-07重写了Log4j 1.x,成立了新的项目Log4j 2, Log4j 2具有Logback的所有特性。

 

Slf4j

2006年,Ceki Gülcü不适应Apache的工作方式,离开了Apache。

然后先后创建了

  • slf4j(Simple Logging Facade for Java)
    日志门面接口,类似于Commons Logging,本身并无日志的实现.
  • Logback
    slf4j的实现

 

Logback

一套日志组件的实现(Slf4j阵营)。

 

 

SLF4J接入

 

slf4j与其他日志组件的桥接说明

  • slf4j-log4j12
    log4j桥接器.由于log4j没有实现slf4j接口,所以slf4j想要使用log4j需要引入slf4j-log4j12
  • slf4j-jdk14
    java.util.logging的桥接器.如果要使用JDK原生的日志框架,需要引用slf4j-jdk14,因为jdk logging同样没有实现slf4j接口.
  • slf4j-nop
    NOP桥接器.默默丢弃一切日志.
  • slf4j-simple
    一个简单实现的桥接器.该实现输出所有事件到System.err.只有Info以及高于该级别的消息被打印,在小型应用中它也许是有用的.
  • slf4j-jcl
    Jakarta Commons Logging的桥接器.这个桥接器将Slf4j所有日志委派给JCL.
  • logback-classic
    slf4j的原生实现,Logback直接实现了slf4j接口,因此使用slf4j与Logback的结合使用也意味着更小的内存与计算开销.

转载于:https://www.cnblogs.com/microcat/p/10696007.html

相关文章:

  • 大二下周总结(7)
  • 前段支持
  • 二:Nexus知识
  • python-for显示奇偶数
  • 力扣——用栈实现队列
  • 02 Anaconda的介绍,安装记以及使用
  • java集合之间的关系
  • java 坑总结
  • Swing 混合布局
  • vue 前端框架 (二) 表格增加搜索
  • 城市经纬度 json
  • P3356 火星探险问题
  • Redis序列化配置
  • BinaryTree
  • IO模式和IO多路复用详解
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 08.Android之View事件问题
  • Apache Spark Streaming 使用实例
  • css布局,左右固定中间自适应实现
  • JSDuck 与 AngularJS 融合技巧
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Markdown 语法简单说明
  • nginx 负载服务器优化
  • Quartz初级教程
  • React的组件模式
  • Spring声明式事务管理之一:五大属性分析
  • SwizzleMethod 黑魔法
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 闭包--闭包之tab栏切换(四)
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 类orAPI - 收藏集 - 掘金
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • python最赚钱的4个方向,你最心动的是哪个?
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​学习一下,什么是预包装食品?​
  • #DBA杂记1
  • #define 用法
  • #if 1...#endif
  • (4)STL算法之比较
  • (C语言)共用体union的用法举例
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (九)c52学习之旅-定时器
  • (四)Linux Shell编程——输入输出重定向
  • (未解决)macOS matplotlib 中文是方框
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net framework4与其client profile版本的区别
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 解决重复提交问题
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • /bin/bash^M: bad interpreter: No such file ordirectory