服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

Spring Boot 整合轻量级日志框架tinylog

日期: 来源:SpringForAll收集编辑:D叔

tinylog(https://tinylog.org/v2/),与其他各种tiny开头的东西一样,是一个轻量级的开源日志解决方案。它本身只包含两个JAR文件(一个用于API,另一个用于实现),没有任何外部依赖关系。两个JAR文件的总大小只有178KB。

虽然是一个轻量级级别方案,但我们常用的基本日志管理功能都非常完备,它拥有与其他热门日志框架类似的API设计、多种可配置的日志输出选项、性能方面也是非常的出彩(这是官方给出的Benchmark(https://tinylog.org/v2/benchmark/))。

今天我们就来学习一下,如何在Spring Boot中使用tinylog记录日志。

整合tinylog

通过之前Spring Boot 2.x基础教程:使用log4j2记录日志 (https://blog.didispace.com/spring-boot-learning-2-8-2)一文的学习,回忆一下,整合其他日志框架,是不是可以总结为这样几步:

  1. 排除Spring Boot默认日志框架依赖
  2. 引入要使用的日志框架依赖
  3. 加入新日志框架的配置文件

好了,我们就按这个步骤来实战一下:

第一步:排除Spring Boot默认日志框架依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

第二步:引入tinylog的依赖

<properties>
    <tinylog.version>2.4.1</tinylog.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>tinylog-api</artifactId>
        <version>${tinylog.version}</version>
    </dependency>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>tinylog-impl</artifactId>
        <version>${tinylog.version}</version>
    </dependency>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>slf4j-tinylog</artifactId>
        <version>${tinylog.version}</version>
    </dependency>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>jcl-tinylog</artifactId>
        <version>${tinylog.version}</version>
    </dependency>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>log4j1.2-api</artifactId>
        <version>${tinylog.version}</version>
    </dependency>

</dependencies>

测试与验证

到这里,基本整合已经完成了。我们不着急去对tinylog做详细配置,先验证下到这里是否都已经正确。跟之前的日志整合例子一样,写个主类打印下各个级别的日志。

@Slf4j
@SpringBootApplication
public class Chapter83Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter83Application.class, args);

        log.error("Hello World");
        log.warn("Hello World");
        log.info("Hello World");
        log.debug("Hello World");
        log.trace("Hello World");
    }

}

这里用了lombok的@Slf4j,如果还不了解的建议读一下这篇:Lombok:让JAVA代码更优雅(https://blog.didispace.com/java-lombok-1/)

运行一下,从控制台可以看到输出内容如下:

通过debug,我们可以看到此时的log已经是TinylogLogger

第三步:加入tinylog的配置文件

通过上一步,我们虽然已经完成了整合,但是上面的格式,是你想要的吗?加入配置调整一下!

在resources目录下创建文件:tinylog.properties,加入下面的配置:

writer=console
writer.format={date: HH:mm:ss.SSS} {level}: {message}

重新运行测试,控制台输出是不是好看一些了

更多配置,比如:文件输出、级别控制等这里就不详细说了,大家可以查看官方文档(https://tinylog.org/v2/configuration/),基本上与其他框架都是类似的,很容易配置。

好了,今天的学习就到这里!如果您学习过程中遇到困难,可以加入我们超高质量的Spring技术交流群 ,参与交流与讨论,更好的学习与进步!

代码示例

本文的完整工程可以查看下面仓库中2.x目录下的chapter8-3工程:

  • Github:https://github.com/dyc87112/SpringBoot-Learning/
  • Gitee:https://gitee.com/didispace/SpringBoot-Learning/

如果您觉得本文不错,欢迎Star支持,您的关注是我坚持的动力!




版权申明:本文系公众号「程序猿DD」原创。可规范转载:完全复制全文不做删减、文首标明来源公众号与作者、文末放置来源公众号的卡片或二维码;非规范转载、抄袭、洗稿一律投诉侵权。

推荐阅读

··································
你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书、创过业、国企4年互联网6年。10年前毕业加入宇宙行,工资不高、也不算太忙,业余坚持研究技术和做自己想做的东西。4年后离开国企,加入永辉互联网板块的创业团队,从开发、到架构、到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。
点击阅读原文,领取2022最新10000T学习资料

相关阅读

  • 神木直聘221期丨最高8000元/月!文员招聘专场

  • 神木市汉乾矿山机电设备有限公司聘文员3000-5000元/月工作要求:1、主要负责公司招标文件的编辑及其他领导安排的任务;2、缴纳五险一金,包食宿。查看详情公司地址:神木市第二新村
  • Spring Boot 中如何统计代码执行耗时

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。近日群里有萌新提到关于统计代码执行时间的事:开始 System.currentTimeMillis() 减去 结束 System.currentTimeMilli
  • 消费下降,你只吃得起“穷鬼套餐”了吗?

  • *本文为「三联生活周刊」原创内容文 | 邢海洋每年的春节时间都不一样,有时候落在1月,有时候落在2月,还有横跨1、2月间的。比较开年前两个月的经济数字,最好是综合起来比较,而不是
  • 甘肃省应急管理厅来我省调研交流

  • 3月20日至21日,甘肃省应急管理厅副厅长尚科锋一行8人来我省调研交流,重点围绕应急管理数字化改革、全覆盖责任体系、基层应急体系建设等相关工作进行交流。省应急管理厅总工程
  • 【科普】游乐设施安全风险提示

  • 游乐场中的娱乐设施属于特种设备具有较大的安全隐患一旦发生事故后果不堪设想大家愉快玩耍的同时也别忘了安全防护↓↓↓来源:国家应急广播
  • 太仓教育,未来可期!

  • 20世纪90年代初太仓普及九年制义务教育,是省内较早完成“普九”任务的县市。1998年教育现代化工程启动。至2000年全市所有区(镇)均建成江苏省实施教育现代化工程先进镇。2002年

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 神木直聘221期丨最高8000元/月!文员招聘专场

  • 神木市汉乾矿山机电设备有限公司聘文员3000-5000元/月工作要求:1、主要负责公司招标文件的编辑及其他领导安排的任务;2、缴纳五险一金,包食宿。查看详情公司地址:神木市第二新村
  • Spring Boot 整合轻量级日志框架tinylog

  • tinylog(https://tinylog.org/v2/),与其他各种tiny开头的东西一样,是一个轻量级的开源日志解决方案。它本身只包含两个JAR文件(一个用于API,另一个用于实现),没有任何外部依赖关系。
  • Spring Boot 中如何统计代码执行耗时

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。近日群里有萌新提到关于统计代码执行时间的事:开始 System.currentTimeMillis() 减去 结束 System.currentTimeMilli
  • 为什么 Spring Boot 构造的jar包能直接运行?

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。Spring Boot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即
  • 全国重点公路项目建设加快推进

  • 随着世界在建最长高速公路隧道——乌尉高速公路天山胜利隧道进口端左右洞开年第一声炮响,正式按下项目今年施工大干的“开启键”。在深中通道伶仃洋大桥270米高的桥塔上,建设