【问题标题】:Spring boot - Cannot turn off loggingSpring Boot - 无法关闭日志记录
【发布时间】:2017-05-09 14:39:56
【问题描述】:

我正在尝试使用 application.properties 文件为 Spring Boot 应用程序关闭 STS 中的控制台输出。

设置值 logging.level.root 似乎确实有一些效果,但我永远无法完全关闭它,也无法关闭自动配置报告输出。

logging.level.root=OFF
spring.main.banner-mode=OFF
application.version=@project.version@

横幅确实被属性 spring.main.banner-mode 关闭。

由于上述属性的某些原因,我仍然会在启动时从 spring 获得 DEBUG 输出:

 2017-05-09 15:33:16.744 DEBUG 11772 --- [           main] .b.l.ClasspathLoggingApplicationListener : Application started with classpath:
 2017-05-09 15:33:16.798 DEBUG 11772 --- [           main] o.s.boot.SpringApplication               : Loading source class 

有更多行告诉我正在加载哪些属性文件,但我不想用它们来填写这篇文章。

然后我得到自动配置报告输出。

我想知道我是否有配置问题,这是否会导致 spring 在启动时继续输出?

【问题讨论】:

    标签: java logging spring-boot


    【解决方案1】:

    回答我自己的问题:经过反复试验,我最终得到了以下结果,它通过application.properties 文件抑制了启动时的所有输出:

     logging.level.root=OFF
     logging.level.org.springframework.boot=OFF
     spring.main.banner-mode=OFF
    

    【讨论】:

      【解决方案2】:

      将以下内容添加到您选择的包中。

      logging.level.<package>=OFF
      

      logging.level.root=OFF 不适合我

      【讨论】:

      • logging.level.org.springframework.*=OFF 似乎也没有任何效果。
      • 我认为它没有 .* 只是 logging.level.org.springframework=OFF
      • 我试过不带'*'而只带'.'之后也没有任何效果。我也尝试在 application.yml 中将其关闭,但这也没有完全关闭调试,我仍然从 spring boot 中获得 DEBUG 输出。
      • 我想我将不得不尝试创建一个自定义 logback.xml,但我真的不明白为什么这令人沮丧!
      • 据我所知 logging.level.root=OFF 关闭日志记录。但是,如果您为另一个包指定另一个级别,它将覆盖以前的规则。因此,logging.level.root=OFF logging.level.org.springframework.web=DEBUG 将在 org.springframework.web 包中记录调试级别
      【解决方案3】:

      您的方法的问题在于它只配置了根级别的记录器;如果设置了匹配的记录器属性(例如logging.level.org.springframework.boot=DEBUG),则将重新打开单个日志。我猜这就是为什么您的 self answer 需要明确禁用 org.springframework.boot 记录器以及根记录器的原因。

      完全禁用日志记录的一种方法是创建一个完全禁用日志记录的特殊logback.xml 文件。

      <configuration>
      </configuration>
      

      如果您总是想要关闭日志记录,您可以创建 logback.xml 文件并将其放入根包中(例如 src/main/resources/logback.xml)。如果您只想在某些情况下禁用它(例如,如果在“nologging”Spring profile),您可以创建一个具有不同名称(logback-off.xml)的自定义文件并将其指定为配置文件/案例的配置文件您希望在哪里禁用它。

      logging.config=classpath:logback-off.xml
      

      【讨论】: