首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)

一、简介 JUL: JUL全称Java util Logging是java原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框架使用方便,学习简单,能够在小型应用中灵活使用。...常见的日志门面 : JCL、slf4j 常见的日志实现: JUL、log4j、logback、log4j2 日志框架出现的历史顺序: log4j —> JUL—> JCL—> slf4j —> logback...指定日志文件的字符集 log4j.appender.rollingFile.encoding = UTF-8 #总共只会维护10个最大 1 MB 的文件 # 指定日志文件内容的大小(超过以后重新复制到新的文件...Log4j 2是对Log4j的升级版,参考了logback的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升,主要有: 异常处理:在logback中,Appender中的异常不会被应用感知到,...使用了SLF4J作为日志门面。 将JUL也转换成slf4j。 也可以使用log4j2作为日志门面,但是最终也是通过slf4j调用logback。 最终的输出都是采用logback进行日志输出的。

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java日志体系框架总结:JUL、JCL、SLF4J、Log4j、Logback、Log4j2

    直到JDK1.4才引入java.util.logging包,JUL。...存在的问题:动态绑定机制可能导致一些难以调试的配置问题,如在某些环境下可能绑定到意外的日志实现。 SLF4J 官网,GitHub。...slf4j-logj12:SLF4J提供,下同。 slf4j-jdk14:使用JUL打印 slf4j-simple:使用SLF4J自带 slf4j-nop:不打印日志 slf4j-jcl:?...Bridging,桥接是指将某个特定的日志库的日志请求重定向到SLF4J,使得所有的日志调用最终都通过SLF4J处理。这对于希望将整个应用程序统一到一个日志框架下非常有用。...在LoggerConfig拥有一列类的过滤器,这些过滤器将会过来所有的记录日志的事件,只有符合要求的日志才会被传递到Appenders。

    20610

    认识Spring 中的日志

    logback-classic: logback的主要日志依赖 log4j-to-slf4j:将lo4j日志桥接到了slf4j日志框架,spring 框架默认使用的,所以需要该依赖 jul-to-slf4j...:将jul日志桥接到了slf4j日志框架,tomcat框架默认使用的,jul 即Java Util Logging 正因为Spring Boot 使用到了Spring、Tomcat,但两者都各自使用了不同的日志框架...这里我们看到两个依赖都桥接到了slf4j,那什么是slf4j?大部分人应该都知道slf4j是一种抽象日志框架,要能够输出日志,slf4j还需要绑定到具体的日志框架,比如logback-classic。...那为什么会出来slf4j呢。 到目前为止Java生态有很多的日志框架:logback、log4j、log4j2、simpleLog、JUL等。...,使用SLF4J来确定具体的日志框架,更多的桥接器可以到官网中查看。

    11810

    走进JavaWeb技术世界9:Java日志系统的诞生与发展

    该系列博文会告诉你如何从入门到进阶,从servlet到框架,从ssm再到SpringBoot,一步步地学习JavaWeb基础知识,并上手进行实战,接着了解JavaWeb项目中经常要使用的技术和组件,包括日志组件...jul-to-slf4j是把对jul的调用桥接到slf4j上,log4j-over-slf4j是把对log4j的调用桥接到slf4j。...到这个时候一切看起来都很简单,很美好。接口和实现做了良好的分离,在统一的JCL之下,不改变任何代码,就可以通过配置就换用功能更强大,或者性能更好的日志库实现。 这种简单美好一直持续到SLF4J出现。...可以看到甚至 Log4j 和 JUL 都可以桥接到SLF4J,再通过 SLF4J 适配到到 Logback!...Log4j2 现在有了更好的 SLF4J 和 Logback,慢慢取代JCL 和 Log4j ,事情到这里总该大统一圆满结束了吧。

    44120

    Java日志体系整理,必看权威总结

    log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...slf4j + jul slf4j-api.jar + slf4j-jdk14.jar 也可以只用slf4j无日志实现 slf4j-api.jar + slf4j-nop.jar SLF4J的适配 slf4j...使用jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明。

    45020

    slf4j 原理及使用原则

    适配器层(包括logback-classic也算适配器层)最多只能选1个包存在,否则slf4j的日志有可能输出到非预料位置 4. jul 桥接 slf4j 失败问题 上述 slf4j 使用原则中有一个问题...就无法实现用 jul-to-slf4j 实现对 jul 日志框架的桥接了。...这是 slf4j 使用中的一个常见的问题,你会发现虽然配置好了 slf4j 的依赖并且正常启动,但基于 jul 的日志仍然输出到了默认的位置,那么,如何来解决这个问题呢?...slf4j 的桥接组件 jul-to-slf4j 与其他桥接组件是完全不同的,它并没有实现它所桥接的 jul 的任何类,而是基于 jul 的框架机制,实现了一套日志输出 handler 来实现日志输出时调用...这在官方文档中有详细的介绍: http://www.slf4j.org/legacy.html 有两种方法可以实现对 jul 的桥接: 1.

    1.3K30

    Java日志体系权威总结!

    log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...图来源于官方文档 其实总的来说,无论就是以下几种情况 你在用JCL 使用jcl-over-slf4j.jar适配 你在用log4j 使用log4j-over-slf4j.jar适配 你在用JUL 使用...jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明。

    24530

    工作5年,竟然还没搞懂Java日志体系!

    log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...upload successful 其实总的来说,无论就是以下几种情况 你在用JCL 使用jcl-over-slf4j.jar适配 你在用log4j 使用log4j-over-slf4j.jar适配 你在用JUL...使用jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) upload successful 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明

    20220

    JAVA日志发展史

    且日志粒度不够细 第二阶段 2001年,一个ceki Gulcü的大佬搞了一个日志框架 log4j后来( log4j成为Apache项目,Ceki加入Apache组织 Apache还曾经建议Sun引入Log4j到Java...第三阶段 sun有自己的小心思,2002年2月JDK1.4发布,Sun推出了自己的日志标准库JUL(Java Util Logging),其实是照着Log4j抄的,而且还没抄好,还是在JDK1.5以后性能和可用性才有所提升...由于Log4j比JUL好用,并且成熟,所以Log4j在选择上占据了一定的优势。...,也就是日志抽象层,支持运行时动态加载日志组件的实现,当然也提供一个默认实现Simple Log(在 ClassLoader 中进行查找,如果能找到Log4j则默认使用llog4j实现,如果没有则使用JUL...但是JUL有三个缺点: 1.效率较低。 2.容易引发混乱。 3.使用了自定义ClassLoader的程序中,使用JCL会引发内存泄露。

    72050

    Java日志体系权威总结

    log4j(作者Ceki Gülcü)出来时就等到了广泛的应用(注意这里是直接使用),是Java日志事实上的标准,并成为了Apache的项目 Apache要求把log4j并入到JDK,SUN拒绝,并在jdk1.4...版本后增加了JUL(java.util.logging) 毕竟是JDK自带的,JUL也有很多人用。...这时如果有人想换成其他日志组件,如log4j换成JUL,因为api完全不同,就需要改动代码。...图来源于官方文档 image.png 其实总的来说,无论就是以下几种情况 你在用JCL 使用jcl-over-slf4j.jar适配 你在用log4j 使用log4j-over-slf4j.jar适配 你在用JUL...使用jul-to-slf4j.jar适配 我在网上盗一张图,给大家一个整体的依赖图(懒得画了) image.png 让Spring统一输出 这就是为了对slf4j的适配做一个例子说明。

    45811

    slf4j、log4j、log4j2、logback到底用哪些jar

    后来发现这种方式真的有点low,从JDK1.4开始提供java.until.logging,后来大佬发现JUL太难用了,就自己手撸了个log4j,后来log4j发现安全漏洞,加上代码结构问题难以维护,于是从...; // java.until.logging,简称jul import java.util.logging.Logger; Logger logger_jul = Logger.getLogger(...假设一个项目在漫长的升级过程中,想从jul升级到logback,还得需要修改代码。如果100个class中使用了jul,就得修改100个地方,这是多么一个繁琐的工作。...如slf4j官方图所示: 这就是slf4j和其他框架的组合,使用slf4j需要首先导入slf4j-api.jar,和log4j配合,你就要导入log4j.jar,以及他们之间的桥接包slf4j-log412...使用总结 "Class path contains multiple SLF4J bindings." 在使用slf4j的时候会遇到以上的报告信息。我也曾遇到过web服务因为slf4j问题启动失败。

    38910
    领券