java - 防止 Spring Boot 将日志打印到控制台

标签 java spring spring-boot

我正在为我的应用程序使用 Spring Boot,并且我正在使用默认的 Spring Boot 日志记录。

在我的 application.properties 中,我为 logging.file 添加了文件路径,

        logging.file= ${logger_path}

而我的 pom.xml 包含

       <logger_path>/tmp/app.log</logger_path>

当我启动应用程序时,它会将日志消息打印到 /tmp/app.log 的文件中,但问题是它还会在控制台上打印日志消息。当我指定 log 文件 时,我真的不明白为什么它会在控制台上打印(虽然它正在将它们打印到指定的文件)。

是否有任何配置可以防止 Spring Boot 将日志消息打印到控制台?

最佳答案

Spring boot 自带 logback logger,默认配置为打印到控制台。

您需要覆盖 logback 配置(在类路径中提供您自己的 logback.xml)。 这是描述here - - 第 66.1 节

如何禁用 logback 日志读取 here -

如您所见,您必须提供值 OFF...类似于:

<configuration>
  <include resource="base.xml" />
   .
   .
  <property name="root.level.console" value="OFF" />
</configuration>

注意:请记住,这里的一般想法是来自 spring-boot 的 logback 配置是最小的。目的是您提供自己的 logback 配置并完全覆盖现有配置 - 例如提供您自己的 logback 配置,仅配置 log file-appender - 这应该是您的一般方法。

关于java - 防止 Spring Boot 将日志打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31935151/

相关文章:

java - Amazon SES - Java 中的 Lambda 函数

java - <a4j:mediaOutput/>在Tomcat 7中无法进行图像渲染

spring - 使用 spring boot、jpa 和 security 的多用户 Restful api

java - Spring Boot 与 @PostConstruct 的集成测试取决于 @Before 部分

java - spring boot不加载jsp文件

Java Spring application.properties 环境变量或默认值

java - 无法删除嵌入式数据库的 Derby 系统目录

java - 如果使用第谷从子项目构建,则找不到目标平台

spring - 将 spring-boot 与 RESTEasy 集成

Java字符串用正则表达式分割