tinylog简介

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

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

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

整合tinylog

通过之前Spring Boot 2.x基础教程:使用log4j2记录日志 一文的学习,回忆一下,整合其他日志框架,是不是可以总结为这样几步:

  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代码更优雅

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

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

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

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

在resources目录下创建文件:tinylog.properties

加入下面的配置:

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

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

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

好了,今天的学习就到这里!如果您学习过程中遇到困难,可以加入我们超高质量的Spring技术交流群 ,参与交流与讨论,更好的学习与进步!更多Spring Boot教程可以点击直达! ,欢迎收藏与转发支持!

代码示例

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

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

欢迎关注我的公众号:程序猿DD。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源

最新文章

  1. ASP.NET Core 中文文档 第二章 指南(4.4)添加 Model
  2. Linux make: g++: Command not found
  3. linux下动态链接库解决方案(二)
  4. 关于vs生成app错误提示,提醒Execution failed for task &#39;:transformClassesWithDexForDebug&#39;.
  5. jQuery 怎么判断DIV出现在可视区域
  6. Android Bitmap 全面解析(四)图片处理效果对比 ...
  7. JS工作积累
  8. 30分钟让你了解MongoDB基本操作
  9. 长沙Uber优步司机奖励政策(1月25日~1月31日)
  10. 【HDOJ】1332 LC-Display
  11. 如何禁用不需要的HTTP方法
  12. if __name__ == &#39;__main__&#39;在python中的应用
  13. 浅谈SQL Server中的三种物理连接操作(HASH JOIN MERGE JOIN NESTED LOOP)
  14. java运算符优先级与流程控制
  15. Pollution over East China : Image of the Day
  16. Handler,Looper,MessageQueue流程梳理
  17. 解决PHP Redis扩展无法加载的问题(zend_new_interned_string in Unknown on line 0)
  18. Web API 2 使用SSL
  19. Jenkins和pipeline
  20. MyList 泛型委托

热门文章

  1. python requests发起请求,报“Max retries exceeded with url”
  2. react中自定义antd主题与支持less(第二部)
  3. react中使用charles实现本地数据mock
  4. 微服务架构攀登之路(三)之gRPC入门
  5. Layui table 学习笔记
  6. [转]JS正则表达式基础
  7. STC8H开发(四): FwLib_STC8 封装库的介绍和注意事项
  8. Elasticsearch基础知识学习
  9. CAS学习笔记四:CAS单点登出流程
  10. IO_FILE——FSOP、house of orange