SpringBoot集成slf4j日志配置

目录

前言

1、slf4j概述

2、pom.xml的日志依赖

3、application.yml的日志配置

4、logback.xml配置文件定义

5、logback.xml配置文件解析

5.1 定义日志的存储路径

5.2 定义日志的输出格式

5.3 定义控制台输出

5.4 定义日志相关参数

5.5 定义日志的输出级别

6、测试日志输出

7、小结

前言

日志,作为一个应用系统的重要部分,然而并不会在项目预研或需求设计阶段就作为一个功能模块单独规划设计,但这丝毫不影响它在任何一个系统中的重要的地位。

为了保证服务的高可用,及时发现问题,迅速解决问题等诉求,所以生产环境一旦出现问题,预警系统就会通过邮件、短信甚至电话的方式实施多维轰炸模式,确保相关负责人不错过每一个可能的bug。

预警系统判断疑似bug大部分源于日志。比如某个微服务接口由于各种原因导致频繁调用出错,此时调用端会捕获这样的异常并打印ERROR级别的日志,当该错误日志达到一定次数出现的时候,就会触发报警。

其次,在以往项目开发过程中,我们往往习惯性使用System.out.println()这个常用的打印输出语句来显示断点信息或业务运行对象信息或控制台日志记录,其实大量的使用System.out.println()在一定程度上会增加资源的消耗。Java日志框架众多,常用的有java.util.logging,log4j,logback,commons-logging等等。而且SpringBoot 提供了一套日志系统,logback是最优的选择。因此本文根据实际项目中使用slf4j 的logback来输出日志,效率很高。

日志的重要性,不言而喻。

OK,接下来,本文主要总结一下项目中目前使用的SpringBoot集成slf4j日志配置。

1、slf4j概述

slf4j,即(Simple Logging Facade for Java,简单门面日志)。它是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,它只服务于各种各样的日志系统。

slf4j提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。在项目中使用了slf4j记录日志,并且绑定了log4j(pom.xml中配置了相应的jar包依赖),则日志会以log4j的风格输出;后期需要改为以logback的风格输出日志,只需要将jar包log4j替换成logback即可,根本不需要修改日志文件的代码。

首先看下日志打印,如下,在启动类中引入Logger日志记录:

@SpringBootApplication
public class SpringbootSlf4jApplication {
 
    private static final Logger logger = LoggerFactory.getLogger(SpringbootSlf4jApplication.class);
 
    public static void main(String[] args) {
        logger.info("===============项目启动了===============");
        SpringApplication app = new SpringApplication(SpringbootSlf4jApplication.class);
        app.run(args);
        logger.info("===============启动成功了===============");
    }
}

日志信息: 

2020-03-21 11:28:18.017 [main] INFO  com.hl.magic.slf4j.SpringbootSlf4jApplication - ===============项目启动了===============
2020-03-21 11:28:18.447 [main] INFO  com.hl.magic.slf4j.SpringbootSlf4jApplication - Starting SpringbootSlf4jApplication on DESKTOP-V8RSTKO with PID 17476
2020-03-21 11:28:18.447 [main] DEBUG com.hl.magic.slf4j.SpringbootSlf4jApplication - Running with Spring Boot v2.1.8.RELEASE, Spring v5.1.9.RELEASE
2020-03-21 11:28:18.447 [main] INFO  com.hl.magic.slf4j.SpringbootSlf4jApplication - No active profile set, falling back to default profiles: default
2020-03-21 11:28:19.077 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http)
2020-03-21 11:28:19.087 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
2020-03-21 11:28:19.097 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
2020-03-21 11:28:19.097 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.24]
2020-03-21 11:28:19.157 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2020-03-21 11:28:19.157 [main] INFO  org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 680 ms
2020-03-21 11:28:19.287 [main] INFO  o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
2020-03-21 11:28:19.387 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
2020-03-21 11:28:19.397 [main] INFO  o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-03-21 11:28:19.397 [main] INFO  org.springframework.web.servlet.Dis
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码蒋

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值