SpringBoot中日志的配置和使用

SpringBoot中日志的配置和使用
强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码

目录

1.SpringBoot中日志介绍
2.SpringBoot中输出日志
3.SpringBoot中日志级别
4.SpringBoot中输出日志到文件
5.SpringBoot中修改日志输出格式
6.SpringBoot中切换日志框架和自定义日志配置

1.SpringBoot中日志介绍

项目开发时,日志的作用是绝对不可忽略的。记录好日志,是排除bug的良药。日志的作用:

  1. 记录一切:日志帮助我们记录程序功能都干了什么,无论是正常的输入输出还是出现异常,都可以用日志记录;
  2. 定位问题:日志可以帮助程序员调试问题,帮助测试人员定位问题;
  3. 记录分析用户行为:统计分析师用来记录用户的一些行为,用于分析用户的习惯和商业价值;
  4. 备份和还原实时数据:数据库工程师用来作为一种特殊的数据库。

SpringBoot采用了 slf4j+logback 的日志框架组合形式,并且SpringBoot也对JUL、log4j2、Logback提供了默认配置。每个日志框架,都默认配置了控制台输出,并且还提供了日志文件输出功能。因此只要进行相关的设置,就可以实现日志框架的切换。

虽然 SpringBoot 适配了多种日志框架,但一般情况下,我们不会切换掉 Logback,因为 Logback 相对于其他的日志框架速度更快,占用内存更少。

2.SpringBoot中输出日志

@Configuration
public class ToolBeanConfig {
   

    private final Logger log= LoggerFactory.getLogger(ToolBeanConfig.class);

    @Bean
    public SMS sms() {
   
        log.trace("测试日志-级别trace");
        log.debug("测试日志-级别debug");
        log.info("测试日志-级别info");
        log.warn("测试日志-级别warn");
        log.error("测试日志-级别error");
        return new SMS();
    }
}

另一种更为简洁方式是,使用Lombok的注解,就可以直接使用log对象来打印日志:

@Configuration
@Slf4j
public class ToolBeanConfig {
   

    @Bean
    public SMS sms() {
   
        log.trace("测试日志-级别trace");
        log.debug("测试日志-级别debug");
        log.info("测试日志-级别info");
        log.warn("测试日志-级别warn");
        log.error("测试日志-级别error");
        return new SMS();
    }
}

3.SpringBoot中日志级别

上述提到SpringBoot对日志框架进行了默认配置,所以在SpringBoot中我们不需要做任何设置,SpringBoot默认配置好了日志, 只要启动 SpringBoot 项目就会在控制台输出日志信息。如下图所示:
在这里插入图片描述
并且在SpringBoot中,默认日志级别为info,这样info级别以下的debugtrace日志信息都不会输出。但我们可以在application.properties配置文件中调整日志级别:

#日志级别大小:trace < debug < info < warn < error
#修改指定包的日志级别
logging.level.cn.korb1n.springboot_project.config = trace
#修改整个项目的日志级别,不建议修改,因为级别低的日志非常多。
#logging.level.root = info

修改日志级别为最低trace后,输出了所有级别的日志:
在这里插入图片描述

4.SpringBoot中输出日志到文件

默认情况下,Spring Boot将日志输出到控制台,不会写到日志文件。但我们仍然可以通过在application.properties配置文件来配置:

#输出日志到项目根目录下的springboot.log文件中
logging.file.name=springboot.log
#输出日志到项目所在磁盘的/springboot/log文件夹中的spring.log文件中
#logging.file.path=/springboot/log

注意:当两种方式都存在时,采用的是logging.file.name方法,所以推荐name方法,name方法也可以指定目录,只要在前面指定路径即。

5.SpringBoot中修改日志输出格式

#修改控制台日志输出的格式,以下方法无法修改日志文件的输出格式
logging.pattern.console=%d{
   yyyy-MM-dd} [%thread] %-5level %logger{
   50} - %msg%n
#修改日志文件中日志的输出格式
logging.pattern.file=%d{
   yyyy-MM-dd HH:mm:ss.SSS} >>> [%thread] >>> %-5level >>> %logger{
   50} >>> %msg%n

日志输出格式说明:

%d 输出日期时间,
%thread 输出当前线程名,
%-5level 输出日志级别,左对齐5个字符宽度
%logger{50} 输出全类名最长50个字符,超过按照句点分割
%msg 日志信息
%n 换行符

6.SpringBoot中切换日志框架和自定义日志配置

如果我们不想使用SpringBoot的默认日志框架,只需要在resources资源文件下放上每个日志框架自己的配置文件即可,SpringBoot就会识别到使用对应配置文件的日志框架,并加载其中的日志配置:
在这里插入图片描述
如选用Logback日志框架,则直接创建logback.xml配置文件放到resources资源目录下,并在logback.xml配置文件中参考logback官方文档进行配置即可完成切换和生效。

本文来源MrKorbin,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/25267

发表评论