首页
学习
活动
专区
圈层
工具
发布

详解 Java 主流日志工具库

Log4j 应该说是 Java 领域资格最老,应用最广的日志工具。从诞生之日到现在一直广受业界欢迎。 Log4j 是高度可配置的,并可通过在运行时的外部文件配置。...Log4j2 架构: ? Log4j vs Logback vs Log4j2 按照官方的说法,Log4j2 大大优于 Log4j 和 Logback。...那么,Log4j2 相比于先问世的 Log4j 和 Logback,它具有哪些优势呢? Log4j2 旨在用作审计日志记录框架。Log4j 1.x 和 Logback 都会在重新配置时丢失事件。...实施日志解决方案 使用日志解决方案基本可分为三步: 引入 jar 包 配置 使用 API 常见的各种日志解决方案的第 2 步和第 3 步基本一样,实施上的差别主要在第 1 步,也就是使用不同的库。...从图中应该可以看出,无论你的老项目中使用的是 common-logging 或是直接使用 log4j、java.util.logging,都可以使用对应的桥接 jar 包来解决兼容问题。

1.2K00

细说 Java 主流日志工具库

Log4j 应该说是 Java 领域资格最老,应用最广的日志工具。从诞生之日到现在一直广受业界欢迎。 Log4j 是高度可配置的,并可通过在运行时的外部文件配置。...Log4j2 架构: ? Log4j vs Logback vs Log4j2 按照官方的说法,Log4j2 大大优于 Log4j 和 Logback。...那么,Log4j2 相比于先问世的 Log4j 和 Logback,它具有哪些优势呢? Log4j2 旨在用作审计日志记录框架。Log4j 1.x 和 Logback 都会在重新配置时丢失事件。...实施日志解决方案 使用日志解决方案基本可分为三步: 引入 jar 包 配置 使用 API 常见的各种日志解决方案的第 2 步和第 3 步基本一样,实施上的差别主要在第 1 步,也就是使用不同的库。...从图中应该可以看出,无论你的老项目中使用的是 common-logging 或是直接使用 log4j、java.util.logging,都可以使用对应的桥接 jar 包来解决兼容问题。

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

    Java 日志框架

    log4j,log4j2,logback 异步日志性能比较 下图比较了 Log4j2 框架Sync、Async Appenders和Loggers all async三者的性能。...log4j2 同步异步 Appender 比较 1.2 日志通用接口 ​ 上述介绍的是一些日志框架的实现(Log4j、Logback、log4j2),他们都有各自的API可以调用,但是我们更多是使用通用的日志调用接口来解决系统与日志实现框架的耦合性...log4j2 支持的输出源有很多,有控制台 ConsoleAppender、文件 FileAppender、AsyncAppender、RandomAccessFileAppender、RollingFileAppender...请注意,多线程应用程序在使用此 appender 时应小心:阻塞队列容易受到锁争用的影响,并且我们的 测试表明, 当更多线程同时记录时性能可能会变差。考虑使用无锁异步记录器以获得最佳性能。...fileName 指定当前日志文件的位置和文件名称 filePattern 指定当发生 Rolling 时,文件的转移和重命名规则 immediateFlush 设置为 true 时 - 默认值,每次写入后都会进行刷新

    1.6K20

    Log4j、Log4j2问题汇总

    神奇的堆栈溢出问题StackOverflowError 自从把公司的系统从Log4j升级到Log4j2后,就总是时不时发生堆栈溢出的问题: 1 2 3 4 5 6 7 8 9 10 11... configuration标签里还有个status属性,用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出...Log4j升级到Log4j2 由于公司老项目的日志管理十分混乱,大部分地方使用自定制的打印类工具来打印,小部分地方用的slf4j+log4j。Log4j在高并发场景下,也会有引发线程阻塞的情况。...为了便于管理,以及提高日志打印的性能,决定将日志从Log4j升级到Log4j2。...Log4j2中RollingFile的文件滚动更新机制 log4j2定期生成和删除过期日志文件的配置 Log4j2进阶使用(按大小时间备份日志) log4j(二)——如何控制日志信息的输出?

    4.4K30

    Spring Boot(十)Logback和Log4j2集成与日志发展史

    一、简介 Java知名的日志有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看。...1.2 Log4j 因为JUL的缺陷问题,这就给了Log4j机会,所有Log4j一经推出就迅速风靡全球。...1.5 Logback Logback是Log4j的作者的另一个开源日志组件,与Log4j相比,Logback重新了内核,使它的性能提升了很多,大约是Log4j的10倍,同时占用更小的内存,并且完整的实现了...Log4j2是Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些固有问题。...从GitHub的更新日志来看,Logback已经有半年没有更新了,而作为知名组织的Apache下的Log4j2的更新却是非常活跃的,Log4j 1.x 于2015年8月停止维护更新了。

    1.8K20

    最牛逼的 Java 日志框架,性能无敌,横扫所有对手.....

    Log4j 2是 Log4j(1) 的升级版,比它的祖先 Log4j 1. x 有了很大的改进,和logback对比有很大的改进。...先来看一下,几种日志框架benchmark对比结果(log4j2官方测试结果): 图片 从图上可以看出,log4j2的异步(全异步,非混合模式)下的性能,远超log4j1和logback,简直吊打。...在64线程测试下,log4j2的吞吐达到了180w+/s,而logback/log4j1只有不到20w,相差近十倍 零GC(Garbage-free) 从2.6版本开始(2016年),log4j2 默认就以零...时,需要注意项目中是否有多套日志框架共存/冲突,需要适配的问题。...不过如果是新系统的话,建议直接上log4j2的api吧,可以享受所有log4j2的功能,使用slf4j之类的api时,上面说的参数格式化之类的功能就无法使用了。 全异步配置(重要!!)

    75320

    Log4j2,性能无敌,横扫对手

    而且 logback的异步性能实在拉跨,功能简陋,配置又繁琐,远不及Apache 的新一代日志框架 - Log4j 目前来看,Log4j2 就是王者,其他日志框架都不是对手 Log4j2简介 Apache...Log4j 2是 Log4j(1) 的升级版,比它的祖先 Log4j 1. x 有了很大的改进,和logback对比有很大的改进。...先来看一下,几种日志框架benchmark对比结果(log4j2官方测试结果): 从图上可以看出,log4j2的异步(全异步,非混合模式)下的性能,远超log4j1和logback,简直吊打。...在64线程测试下,log4j2的吞吐达到了180w+/s,而logback/log4j1只有不到20w,相差近十倍 零GC(Garbage-free) 从2.6版本开始(2016年),log4j2 默认就以零...不过如果是新系统的话,建议直接上log4j2的api吧,可以享受所有log4j2的功能,使用slf4j之类的api时,上面说的参数格式化之类的功能就无法使用了。 全异步配置(重要!!)

    68020

    最牛逼的 Java 日志框架,性能无敌,横扫所有对手.....

    而且 logback的异步性能实在拉跨,功能简陋,配置又繁琐,远不及Apache 的新一代日志框架 - Log4j 目前来看,Log4j2 就是王者,其他日志框架都不是对手 Log4j2简介 Apache...Log4j 2是 Log4j(1) 的升级版,比它的祖先 Log4j 1. x 有了很大的改进,和logback对比有很大的改进。...先来看一下,几种日志框架benchmark对比结果(log4j2官方测试结果): 从图上可以看出,log4j2的异步(全异步,非混合模式)下的性能,远超log4j1和logback,简直吊打。...在64线程测试下,log4j2的吞吐达到了180w+/s,而logback/log4j1只有不到20w,相差近十倍 零GC(Garbage-free) 从2.6版本开始(2016年),log4j2 默认就以零...不过如果是新系统的话,建议直接上log4j2的api吧,可以享受所有log4j2的功能,使用slf4j之类的api时,上面说的参数格式化之类的功能就无法使用了。 全异步配置(重要!!)

    1.2K20

    Log4j2的异步性能已经无敌了,还不快试试

    Log4j 2是 Log4j(1) 的升级版,比它的祖先 Log4j 1. x 有了很大的改进,和logback对比有很大的改进。...从图上可以看出,log4j2的异步(全异步,非混合模式)下的性能,远超log4j1和logback,简直吊打。压力越大的情况下,吞吐上的差距就越大。...在64线程测试下,log4j2的吞吐达到了180w+/s,而logback/log4j1只有不到20w,相差近十倍 零GC(Garbage-free) 从2.6版本开始(2016年),log4j2 默认就以零...时,需要注意项目中是否有多套日志框架共存/冲突,需要适配的问题。...不过如果是新系统的话,建议直接上log4j2的api吧,可以享受所有log4j2的功能,使用slf4j之类的api时,上面说的参数格式化之类的功能就无法使用了。 全异步配置(重要!!)

    1.4K40

    Log4j2 - 动态生成Appender

    ThreadContext是Log4j2用来存放线程信息的,相当于Log4j 1.X中的MDC和NDC,MDC是map,NDC是stack。...当每个User登录时,就将该User的domainId存放到ThreadContext中,当退出登录时就将该domainId从ThreadContext中移除。...的appender,需要注意的是,如果启用了Log4j2的动态加载配置文件功能,那么当配置文件被改动后并被重新加载时,会导致原本动态生成的domain appender无效。...,在扫描配置文件是否改动时,还会报错,原因是在RollingFileAppender的FileName和filePattern里使用了占位符。...参考链接 运行时添加log4j2的appender log4j2如何动态的创建logger和appender log4j2 不使用配置文件,动态生成logger对象 log4j2的MDC应用配置 警告

    1.5K20

    log4j 1 升级方案

    ,没有其他的操作,只需要将jar包完全替换掉 log4j 即可。...原作者 Ceki Gülcü 发起 是基于 log4j 版本 1.2.17 的分支,其主要目的是为了解决 log4j 1.2.17 中的漏洞。...有一定学习成本但不多(log4j1 升级到 log4j2)方案特征部分平替有一定学习成本(log4j1 和 log4j2 的配置还是有一些不一样的)扩展的额外功能对于项目维护与正常运行有更好的帮助(不是主要因素...组件: log4j-api 日志接口; log4j-core 具体的实现; log4j-1.2-api log4j1 到 log4j2 的路由器,在使用 log4j1 的 api 时会在内部路由到 log4j2...,异常数据处理等功能,这部分功能在项目中尽可能不要使用,从某些角度上来说,数据处理、消息处理这部分有专门的独立处理组件,日志组件就应该处理日志,尤其尽可能异步打印到日志文件或日志流中。

    1K10

    Java日志框架学习--LogBack和Log4j2--下

    Spring整合log4j2 Logback Logback是由log4j创始人设计的又一个开源日志组件。...logger的配置 additivity为true,表示会继承父类的appenders,为false表示不继承父类的appenders Log4j Log4j2简介 Apache Log4j 2是对...与Logback不同,它会在重新配置发生时不会丢失日志事件。 高级过滤 与Logback一样,Log4j2支持基于Log事件中的上下文数据,标记,正则表达式和其他组件进行过滤。...与Logback不同,Log4j2可以在任何这些情况下使用通用的Filter类。 插件架构 Log4j使用插件模式配置组件。...的配置文件解析源码,大家可以参考AbstractConfiguration 异步日志 异步日志是log4j2最大的特色,其性能的提升主要也是从异步日志中受益。

    1.4K10

    你知道 log4j2 各项配置的全部含义吗?带你了解 log4j2 的全部组件

    在 java 中,存在着很多日志框架,诸如 log4j、logback,以及在他们基础上的改进版 log4j2,此前的文章中也已经介绍过,log4j2 凭借其技术改进,引入无锁异步等机制让日志吞吐量、性能都有大幅提升...Appender -- RollingFileAppender 对于一个线上持续工作的服务来说,持续向单个文件输出日志显然是不现实的。...常用的 Filter Filter 是可选的,log4j2 会在日志产生时自动调用预先配置的 Filter 的 filter 方法进行过滤,以便获得是否允许打印的标识。...但问题在于,无论 log4j2 提供了多么强大的功能,都无法保证能够完美覆盖所有的场景,那么,当我们遇到了上述所有支持的功能所无法满足的场景时,我们应该如何去解决呢?...敬请期待博主的下一篇文章。 附录 -- 参考资料 https://logging.apache.org/log4j/log4j-2.5/index.html

    3K20

    Spring 全家桶之 Spring Boot 2.6.4(三)- Logging

    ,比log4j拥有更高的性能,目的就是为了替代log4j。...,SUN公司拒绝log4j加入到jdk中,于是jdk1.4版本后增加了JUL(java.util.logging) logback:作者Ceki Gülcü开发,比log4j拥有更高的性能 log4j2...:参考了logback,并做了一系列优化,推出了log4j2,2015年9月,Apache软件基金业宣布,Log4j不在维护,建议所有相关项目升级到Log4j2。...-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 --> RollingFileAppender...-- 当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名 TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略

    75310

    spring引入log4j2日志框架

    API文档:http://logging.apache.org/log4j/2.x/log4j-api/apidocs/index.html log4j、slf4j、log4j2、logback之间的关系...slf4j:slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用(如log4j、logback、log4j2)。...log4j2:Log4j2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步等),使得日志的吞吐量、性能比log4j 1.x提高了10倍,并解决了一些死锁的bug,而且配置更加简单灵活...(15)RollingFileAppender:配置文件滚动生成策略,按照策略生成新的日志文件。...--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出--> <!

    1.9K50
    领券