Java日志框架介绍
一.序言
日志为系统的必不可少的一部分,通过输出的日志我们可以排查线上出现的各种问题,就像断案的线索一样。我们还可以通过日志数据分析用户的行为习惯做大数据分析。
二.日志框架分类及其历史
框架的种类:
- JUL:JDK默认自带日志工具。
- Log4J1:apache软件基金会开源项目,是由xxxx开发。
- Log4J2:Log4J1的升级产品,但不与log4J兼容。
- LogBack:是从Apache跳槽后的自己另行开发的一套日志框架。
- Commons Logging:之前叫做kafata Comons Logging,后改名为Conmmons Logging apache软件基金会项目。
- SLF4J:Simple Log Facede For Java,抽象了一套日志访问接口,没有具体实现,xxxx是从Apache跳槽后的自己另行开发的一套日志门面框架.
框架历史:
- 20世纪90年代,欧洲安全电子商务系统,开发一套最终程序的API,随之不断的发展,成为咱们熟悉的Log4J。
- 由于其发展迅速,Log4J一度成为日志的标杆,Apache建议Sun成Java日志标准,但被Sun拒绝了。
- JDK1.4的时候,官方开发一款日志工具即Java Util Loggin,其实现模仿Log4J
- Apache软件基金会开发 Kata Commons Logging,一款门面框架,其实现可以是JUL也可也是Log4J.
- xxxx离开Apache后,创建了自己的公司,开发了SLF4J与LogBack,同样SLF4J也是一款门面看框架日志,LogBack则是它的实现。
- 由于LogBack性能各方面优于Log4j1,因此Apache重新构建Log4J2,使Log4J拥有LogBack所有的特性,但Log4J1不兼容Log4J2
框架之间关系:
- SLF与Commons Logging是一种门面的设计模式,提供了日志层面的抽象接口而具体的实现可以是Log4J或LogBack.
- 最近搭档:
Commongs Logging+Log4j
SLF+LogBack
三.Commons Logging与SLF区别
实现机制:
- Commons Logging利用java 动态加载机制查找实现类,在OSGI插件中通用性不好。
- SLF在编译期间通过制定目录查找实现类。
性能:
四.实际应用
Java日志框架介绍的更多相关文章
- Java常用日志框架介绍
Java常用日志框架介绍 java日志概述 对于一个应用程序来说日志记录是必不可少的一部分.线上问题追踪,基于日志的业务逻辑统计分析等都离不日志.java领域存在多种日志框架,目前常用的日志框架包括L ...
- Java常用日志框架介绍(转)
Java常用日志框架介绍 java日志概述 对于一个应用程序来说日志记录是必不可少的一部分.线上问题追踪,基于日志的业务逻辑统计分析等都离不日志.java领域存在多种日志框架,目前常用的日志框架包括L ...
- Java程序员最常用的8个Java日志框架
转自:http://www.codeceo.com/article/8-java-log-framework.html 作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用 ...
- 转:Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...
- Java日志框架那些事儿
文章首发于[博客园-陈树义],点击跳转到原文Java日志框架那些事儿. 在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而 ...
- 【SpringBoot】Logback日志框架介绍和SpringBoot整合实战
========================11.Logback日志框架介绍和SpringBoot整合实战 2节课================================ 1.新日志框架L ...
- java 日志框架
1.java常用日志框架介绍: https://www.cnblogs.com/chenhongliang/p/5312517.html 2.java各类日志组件汇总: https://blog.cs ...
- Java基础学习总结(40)——Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...
- Java日志框架总结
1. 前言 从写代码开始,就陆陆续续接触到了许多日志框架,较常用的属于LOG4J,LogBack等.每次自己写项目时,就copy前人的代码或网上的demo.配置log4j.properties或者lo ...
随机推荐
- Android Studio CMake依赖第三方库
这里实现一个简单的功能在APP里调用libnative-lib.so里的add.libnative-lib.so去调用libthird.so里的third_add来实现 JniUtil public ...
- Murano Weekly Meeting 2015.12.01
Meeting time: 2015.December.1st 1:00~2:00 Chairperson: Nikolay Starodubtsev, from Mirantis Meeting ...
- JavaScript比较运算符——"== != === !=="区别
JavaScript的比较和逻辑运算符用于测试 true 或 false. 比较运算符在逻辑语句中使用,以测定变量或值是否相等. 例如给定 x=5,下面的表格解释了比较运算符: 1. == 和===的 ...
- 利用Serv-U搭建FTP服务器
以前在学校的时候,学校的整个宿舍楼都是在一个局域网中,经常有人用个人电脑搭个网站或者FTP啊什么的,主要是进行一些影视资源的传播活动.不乏 有些资源充沛的有志青年利用业余时间翻译某岛国影视资源,利用局 ...
- php 关于时间的函数
//返回1970年1月1日零点以来的秒数. //定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. time(); ...
- 【防火墙】DMZ
DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”.它是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,而设立的一个非安全系统与安 ...
- Python函数(2)
一.函数对象 函数是第一类对象:指的是函数名指向的值可以被当作数据去使用. 1.函数可以被引用 例如: 2.可以当作参数传递给另一个函数 例如: 3.可以当作一个函数的返回值 例如: 4.可以当作容器 ...
- sass命令
tip:sass报错解决 通过ruby编译scss时,发现编译报错,内容如下: Conversion error: Jekyll::Converters::Scss encountered an ...
- ansible测试环境
ip user sudo_user port usage 192.168.48.81 ansible root 29922 nagios & ansible control 192.168.4 ...
- java之Socket多线程传递对象
服务器端利用线程池回复客户端: public class Server implements Runnable { private final ServerSocket server; private ...