JAVA日志框架概述
一、日志门面与日志组件
1.1.log4j与logback
某些关键操作,比如判定是否记录一条日志语句的操作,其性能得到了显著的提高。这个操作在LogBack中需要3纳秒,而在Log4J中则需要30纳秒。 LogBack创建记录器(logger)的速度也更快:13微秒,而在Log4J中需要23微秒。更重要的是,它获取已存在的记录器只需94纳秒,而 Log4J需要2234纳秒,时间减少到了1/23。跟JUL相比的性能提高也是显著的。 另外,LOGBack的所有文档是全面免费提供的,不象Log4J那样只提供部分免费文档而需要用户去购买付费文档。
1.2.common-logging与slf4j
- common-logging通过动态查找的机制,在程序运行时自动找出真正使用的日志库。由于它使用了ClassLoader寻找和载入底层的日志库,导致了像OSGI这样的框架无法正常工作,因为OSGI不同的插件使用自己ClassLoader。
- slf4j在编译时静态绑定真正的Log库,因此可以在OSGI中使用。
二、如何集成slf4j
2.1.基本集成
<!-- 日志组件log4j与slf4j的集成依赖 --> <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.25</version> </dependency> <!-- 日志组件logback与slf4j的集成依赖 --> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.7.25</version> </dependency> <!-- 日志组件jul与slf4j的集成依赖 --> <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-jdk14</artifactId><version>1.7.25</version> </dependency> <!-- 日志门面jcl与slf4j的集成依赖,将所有slf4j日志委派给jcl --> <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-jcl</artifactId><version>1.7.25</version> </dependency>
2.2.使用桥接器
<!-- JUL桥接器,将jul的日志输出重定向到slf4j --> <dependency><groupId>org.slf4j</groupId><artifactId>jul-to-slf4j</artifactId> </dependency> <!-- JCL桥接器,将commos-logging的日志输出重定向到slf4j --> <dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId> </dependency> <!--log4j桥接器,将log4j的日志输出重定向到slf4j --> <dependency><groupId>org.slf4j</groupId><artifactId>log4j-over-slf4j</artifactId> </dependency> <!-- 日志组件logback与slf4j的集成依赖,各桥接器的重定向最终流向logback --> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId> </dependency>
条件 | 原因 |
log4j-over-slf4j.jar和slf4j-log4j12.jar同时存在 | slf4j-log4j12.jar会将所有日志调用委托给log4j,而log4j-over-slf4j.jar又将所有对log4j的调用委托给相应的slf4j,两者形成了一个死循环. |
jul-to-slf4j.jar和slf4j-jdk14.jar同时存在 | slf4j-jdk14.jar会将所有日志调用委托给jdk的log,而jul-to-slf4j.jar又将所有对jul-api的调用委托给相应的slf4j,两者形成了一个死循环。 |
转载于:https://www.cnblogs.com/manayi/p/9570411.html
JAVA日志框架概述相关推荐
- Java日志框架——Logback
Java日志框架--Logback 简介 1.1 Logback概述 1.2 日志级别 1.3 组件 1.4 配置文件 1.5 日志输出格式 项目中应用步骤 2.1 依赖 2.2 日志输出到控制台 2 ...
- Java集合框架概述及Collection接口方法讲解
Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储.另一方面,使用Array存储对象方面具有一些弊 端,而Java 集合就像一种容 ...
- 获取日志的等级_进阶之路:Java 日志框架全画传(中)
导读:随着互联网和大数据的蓬勃发展,分布式日志系统以及日志分析系统得到了广泛地应用.目前,几乎在所有应用程序中,都会用到各种各样的日志框架来记录程序的运行信息.鉴于此,工程师十分有必要熟悉主流的日志记 ...
- java log4j logback jcl_进阶之路:Java 日志框架全画传(下)
导读:随着互联网和大数据的蓬勃发展,分布式日志系统以及日志分析系统得到了广泛地应用.目前,几乎在所有应用程序中,都会用到各种各样的日志框架来记录程序的运行信息.鉴于此,工程师十分有必要熟悉主流的日志记 ...
- java日志框架JUL、JCL、Slf4j、Log4j、Log4j2、Logback 一网打尽
为什么程序需要记录日志 我们不可能实时的24小时对系统进行人工监控,那么如果程序出现异常错误时要如何排查呢?并且系统在运行时做了哪些事情我们又从何得知呢?这个时候日志这个概念就出现了,日志的出现对系统 ...
- Java日志框架 -- 日志框架介绍、日志门面技术、JUL日志(JUL架构、JUL入门示例、JUL日志级别、JUL日志的配置文件)
1. 日志的概念 日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统的活动等重要作用. 2. Java日志框架 问题: 控制日志输出的内容 ...
- Java日志框架简介
一.java日志发展线路图 上面涵盖了java世界里主要的日志框架或门面,注意,jcl和slf4j是日志门面,因此,在slf4j之前的日志框架,要使用桥接模式来适应slf4j的通用接口,达到统一接口调 ...
- Java日志框架学习--JUL和Log4j--上
Java日志框架学习--JUL和Log4j--上 引言 日志框架 市面流行的日志框架 日志门面和日志框架的区别 JUL JUL简介 JUL组件介绍 实际使用 Logger之间的父子关系 默认配置文件位 ...
- Java日志框架学习笔记
Java日志框架学习笔记 文章目录 0 主流Java日志框架 1 log4j 1.1 理论知识 1.1.1 Loggers日志记录器 1.1.2 Appenders输出端 1.1.3 Layout日志 ...
最新文章
- 在量子计算机到来之前,请准备好抗量子破解的密码学
- HDOJ-3785 寻找大富翁(优先队列)
- k8s里面的项目怎么暴露端口让用户访问_从零开始入门 K8s | 可观测性:监控与日志...
- 谈谈在.NET Core中使用Redis和Memcached的序列化问题
- keepalived和heartbeat区别
- matlab 调整灰度,matlab灰度图像调整及imadjust函数的用法详解
- 键盘鼠标共享效率工具-Synergy
- 密钥--公钥、私钥方式
- 2-4 递增链表的插入 链表
- 中科大软件学院第一学期总结
- 【TSP】基于matlab GUI蚁群算法求解旅行商问题【含Matlab源码 929期】
- 纯干货 | 从淘宝到云端的高可用架构演进
- 微信小程序直接打开第三方app,如何实现?
- 【组合逻辑电路】——通用译码器
- TOM企邮、腾讯企邮、网易企邮、263企邮,四大企业邮箱实测:谁是最实用的企业邮箱产品?
- MT1308芯片原厂
- 计算机网络技术报告一份,计算机网络技术》实验的报告.doc
- 【书籍】——机器学习与深度学习
- 为设计指定输入端口驱动强度:set_driving_cell、set_drive 和set_input_transition
- 【蓝桥真题】三羊献瑞,祥瑞生辉+三羊献瑞=三羊生瑞气(暴力破解)
热门文章
- sqlserver201无效的许可证书_sql提示无效数字
- python编辑器使用技巧大全_markdown编辑器常用功能汇总
- Hive Cli 和 Beeline
- Spark数据统计指标计算
- php爬虫伪造请求头,Nodejs 伪造IP 爬取图片
- [Pro]斐波那契数列阿【斐波那契数列】
- Kubernetes 架构与设计
- 品高打造西科大教育云,带你看懂高教云建设之路
- solr6.6 导入 文本(txt/json/xml/csv)文件
- DELL Latitude E5400 装了PC DOS 7.1系统启动不了