SpringBoot日志输出级别:配置和使用指南

Dear 丶 2024-04-25 08:57 271阅读 0赞

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿我们奔赴在各自的热爱里…

在这里插入图片描述

日志说明

Java项目中的日志输出顺序是根据日志级别来确定的。常用的日志级别有 DEBUG、INFO、WARN、ERROR。日志级别越低,输出的日志越详细。当一个日志被输出时,它会根据日志级别决定是否被记录。

在Java项目中,通常使用的日志框架是SLF4J和Logback。这两个框架通常配合使用,SLF4J作为日志接口,而Logback作为日志实现。

在Logback中,可以通过配置文件来定义日志输出的顺序。配置文件中可以设置多个输出器,每个输出器都可以设置不同的日志级别。当一个日志被输出时,它会根据日志级别逐个检查输出器,然后选择合适的输出器进行输出。当一个日志级别在多个输出器中都被配置了,输出器的配置顺序将决定日志的输出顺序。

因此,在Java项目中,日志的输出顺序是根据日志级别和输出器的配置顺序来确定的。

配置案例

在Java项目中,可以通过配置文件来配置不同环境的日志级别。下面是一个示例的YAML配置文件:

  1. # 生产环境配置
  2. ---
  3. spring:
  4. profiles: production
  5. logging:
  6. level:
  7. root: INFO
  8. com.example: ERROR
  9. # 测试环境配置
  10. ---
  11. spring:
  12. profiles: test
  13. logging:
  14. level:
  15. root: DEBUG
  16. com.example: DEBUG

在上面的示例中,我们使用了Spring Boot的配置文件格式,并通过 spring.profiles 属性来区分不同的环境配置。

在生产环境的配置中,我们将根日志级别设置为 INFO,表示只输出警告级别及以上的日志。而针对 com.example 包下的日志,我们设置为 ERROR,表示只输出错误级别及以上的日志。

在测试环境的配置中,我们将根日志级别和 com.example 包下的日志级别都设置为 DEBUG,表示输出所有的日志,包括调试级别的日志。

通过这样的配置,我们可以在不同环境中灵活控制日志的输出级别。在生产环境中,只输出重要的日志信息,而在测试环境中,则输出更详细的日志信息,方便开发人员进行调试和排查问题。


集成@Slf4j

Spring Boot集成@Slf4j注解后,默认输出的日志级别是INFO。

@Slf4j是Lombok提供的一个注解,它可以在类上添加一个Logger对象,简化了在类中创建Logger对象的步骤。当使用@Slf4j注解后,可以直接通过log对象进行日志输出。

例如:

  1. import lombok.extern.slf4j.Slf4j;
  2. @Slf4j
  3. public class MyLogger {
  4. public void myMethod() {
  5. log.debug("This is a debug log message");
  6. log.info("This is an info log message");
  7. log.warn("This is a warning log message");
  8. log.error("This is an error log message");
  9. }
  10. }

在上面的示例中,我们使用@Slf4j注解在类上添加了一个log对象。log对象可以直接调用debug、info、warn和error方法进行日志输出。在默认情况下,INFO级别及以上的日志会被输出到日志文件或控制台上。如果想要修改默认的日志级别,可以在application.properties或application.yml文件中进行配置。

配置后效果

在这里插入图片描述

默认效果

在这里插入图片描述
总结:在Spring Boot中,默认的日志级别是INFO。

这意味着只有INFO级别及以上的日志信息会被输出,而DEBUG级别的日志则会被忽略。

如果你想改变默认的日志级别,可以在application.properties 或 application.yml 配置文件中配置logging.level属性。例如,如果你想将日志级别改为DEBUG,你可以在配置文件中添加以下内容:

  1. logging:
  2. level:
  3. root: DEBUG

这将将根日志记录器的级别设置为DEBUG。

除了根日志记录器,你还可以设置特定包的日志级别。例如,要将com.example包下的日志级别设置为DEBUG,可以添加以下配置:

  1. logging:
  2. level:
  3. com.example: DEBUG

这将仅对com.example包下的日志进行DEBUG级别的记录。


注解案例

要引入@Slf4j注解,你需要按照以下步骤进行操作:

  1. 在你的项目的pom.xml文件中添加Lombok的依赖:


    org.projectlombok
    lombok
    1.18.20
    provided
  2. 在你的IDE中安装Lombok插件。如果你使用的是IntelliJ IDEA,可以在设置中搜索”Lombok”并安装。

  3. 在你的Java类中引入@Slf4j注解:

    import lombok.extern.slf4j.Slf4j;

    @Slf4j
    public class MyClass {

    1. //...

    }

  4. 现在你就可以在该类中使用log对象进行日志输出了。例如:

    public void myMethod() {

    1. log.debug("This is a debug log message");
    2. log.info("This is an info log message");
    3. log.warn("This is a warning log message");
    4. log.error("This is an error log message");

    }

注意:使用@Slf4j注解后,你无需手动创建Logger对象,它会自动为你生成一个log对象。同时,确保你的IDE已正确配置以支持Lombok注解。


在这里插入图片描述


?☕️?????
?非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞? 关注❤️ 分享? 留言?thanks!!!

?愿我们奔赴在各自的热爱里!

发表评论

表情:
评论列表 (有 0 条评论,271人围观)

还没有评论,来说两句吧...

相关阅读