当前位置: 首页 > 后端技术 > Java

替换Log4j2!tinylog诞生,无需定义logger变量,简单,轻量级,性能爆炸!

时间:2023-04-01 14:25:36 Java

背??景前段时间,各种日志框架火了,包括:Log4j1.x、Log4j2.x、Logback等,差点被灭:Log4j2.3.1发布!我勒个去??Logback也炸了,炸了。..Log4j和Logback是主流的日志框架,它们的功能非常强大,不仅仅是日志记录,功能越多自然带来的漏洞也越多。.其实我们使用的日志框架,大部分都是系统日志,其他乱七八糟的功能用的很少,所以如果你想找一个简单的日志框架,可以试试这个轻量级的开源日志框架——tinylog。tinylog基本介绍官网:https://tinylog.org/开源地址:https://github.com/tinylog-or...看名字,tinylog是:minilog,它的主要目标是简化日志操作.支持的语言:Java(Java6+)、Kotlin、Scala...等基于JVM的语言(包括Android)支持的日志级别:TRACEDEBUGINFOWARNERROROFF(禁用日志输出)lightweighttinylog专注于轻量级,那么tinylog有多轻呢?数量??栈长亲身体验了一下,总结了以下三点:只有两个jar包,一个是API,一个是实现,没有任何其他依赖;两个jar包的总大小只有178KB;无需全局静态变量,开箱即用;查看如何使用tinylog:importorg.tinylog.Logger;publicclassApplication{publicstaticvoidmain(String[]args){Logger.info("欢迎关注公众号:Java技术栈!");}}这里可以看出tinylog的优点,不需要像logger那样添加全局静态变量:privatefinalLoggerlogger=LoggerFactory.getLogger(this.getClass());可以直接使用Logger.info方法等静态变量,也可以使用{}参数占位符,简直不能太方便!另外,大家可以关注公众号Java技术栈,在菜单栏查看之前Java系列精选栈长分享的好用技术和工具。日志性能tinylog对日志输出进行了优化,日志输出性能非常好,最快的时候甚至比Log4j2和Logback快好几倍!例如使用如下格式输出日志:{date:yyyy-MM-ddHH:mm:ss}-{thread}-{class}.{method}()-{level}:{message}tinylog在此time性能确实打败了其他日志记录框架!更多benchmark测试请参考官方报告:https://tinylog.org/v2/benchm...soawesome!你想试试吗?集成实践1)引入依赖我们只需要引入tinylog-impl:org.tinylogtinylog-impl${tinylog.version}此时它所依赖的API包也会一起包含进来:2)实战示例栈长使用SpringBoot,添加一个CommandLineRunner可以在系统启动时直接输出日志:@BeanpublicCommandLineRunnercommandLineRunner(){return(args)->{Logger.info("你好,tinylog!");};}如果CommandLineRunner不清楚,可以关注公众号Java技术栈,在菜单栏阅读栈长写的SpringBoot系列教程。很高兴不必在每个类中都编写记录器全局变量。.本文实际源码完整版已上传:https://github.com/javastacks...3)启动验证现在我们启动系统:如图所示,系统启动后输出我们的日志.4.更多配置如果要自定义日志配置,可以在资源目录下创建一个日志配置文件:tinylog.properties。参考示例如下:level=INFOwriter1=consolewriter1.format={date:HH:mm:ss.SSS}{class}.{method}(){level}:{message}writer2=rollingfilewriter2.file=logs/{date:yyyy-MM-dd}/log_{count}.logwriter2.policies=startup,daily:02:00writer2.format={date:HH:mm:ss}[{thread}]{level}:{message}:{message}此时日志级别为:info,创建两个writer,一个输出到控制台,一个写入文件,每天按时切日志归档。更多日志配置请参考官方文档:https://tinylog.org/v2/config...总结Tinylog于2014年开源,到现在快8年了,版本也是从1.x到现在的2.x,最新版本是:2.4.1,v2.5也在路上。从官方仓库来看,更新频率还是挺高的。如果你正在寻找一个简单的日志框架,tinylog足够轻量级,易于使用,并且具有出色的性能。这也是一个不错的选择。可惜tinylog只是一个小众的日志框架,不是主流,而且国内的资料也很少,所以如果你用的不深,可以试试,不然可能会有很大的学习成本,你还是得权衡利弊。本文实际源码完整版已上传:https://github.com/javastacks...欢迎Star学习,这??里将提供以下SpringBoot示例!你在使用tinylog吗?欢迎留言分享~最后,如果你想关注和学习最新最主流的Java技术,可以持续关注公众号Java技术栈,公众号会第一时间推送尽可能。版权声明!!!本文由公众号《Java技术栈》原创。转载、引用本文内容请注明出处。抄袭、洗稿均属侵权投诉,后果自负,并保留追究法律责任的权利。近期热点文章推荐:1.1000+Java面试题及答案(2022最新版)2.厉害了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4、SpringBoot2.6正式发布,一大波新特性。.5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!