美文网首页
三分钟读懂Spring Boot写日志

三分钟读懂Spring Boot写日志

作者: 充电实践 | 来源:发表于2023-06-29 10:22 被阅读0次

    Spring Boot在所有内部日志中使用Commons Logging,但是对底层日志的实现是开放的。在Spring Boot生态中,为Java Util LoggingLog4J2Logback 这些常见的日志框架都提供了自动化配置组件,每种Logger都可以通过配置在控制台或者文件中输出日志内容。默认情况下,当我们使用各种Starter的时候,会使用Logback来实现日志管理。

    在代码层面,不使用默认的是Logback还是Log4j,而直接使用Slf4j。Slf4全称为Simple Logging Facade for Java,翻译为简单日志门面,它并不是一个具体的日志解决方案,实际工作的还是Logback或Log4j这样的日志框架。Slf4j就是23种设计模式中门面模式的典型应用案例。通过Slf4j这样一个门面的抽象存在,让我们在写代码的之后,只依赖这个抽象的日志操作,而具体的实现会在Slf4j门面调用的时候委托给具体的实现

    1.Slf4j使用

    确保idea中有Lombok插件,使用@Slf4j。该插件中有@Slf4j注解,会将@Sel4j注解编译成:
    private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(this.XXX.class);

    使用的时候直接log.info("xxx" );

    |

    @Slf4j
    @SpringBootApplication
    public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    
        log.error("Hello World");
        log.warn("Hello World");
        log.info("Hello World");
        log.debug("Hello World");
        log.trace("Hello World");
    }
    

    }

    1. 日志的内容

    日志通常包括以下内容:

    时间日期:精确到毫秒

    日志级别:ERROR, WARN, INFO, DEBUG or TRACE

    进程ID

    分隔符:--- 标识实际日志的开始

    线程名:方括号括起来(可能会截断控制台输出)

    Logger名:通常使用源代码的类名

    日志内容

    1. 日志级别

    默认的输出日志级别包含:ERROR、WARN和INFO。

    日志级别切换方式:第一种:在运行命令后加入--debug标志,如:$ java -jar myapp.jar --debug

    第二种:在配置文件application.properties中配置debug=true

    1. 日志配置

    (1)文件输出

    Spring Boot默认配置只会输出到控制台,并不会记录到文件中,但是我们通常生产环境使用时都需要以文件方式记录。

    若要增加文件输出,需要在配置文件application.properties配置几个参数,比如这样:

    |

    logging.file.name=run.log
    logging.file.path=./

    |

    (2)级别控制

    如果要对各个Logger做一些简单的输出级别控制,那么只需要在application.properties中进行配置就能完成。

    配置格式:logging.level.*=LEVEL

    logging.level:日志级别控制前缀,*为包名或Logger名

    LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OF

    相关文章

      网友评论

          本文标题:三分钟读懂Spring Boot写日志

          本文链接:https://www.haomeiwen.com/subject/nmvaydtx.html