如何在spring-boot中禁用控制台日志记录?

19

我正在使用spring-boot的默认日志配置。

我该如何在保持logging.file=myfile.log配置的同时,防止控制台输出日志?

我的目标是不输出控制台窗口信息,只将日志记录到那个文件中。

不需要创建特定的logback.xml配置。因为我使用spring-boot来避免自己进行日志配置。


请查看此链接:https://dev59.com/PFwZ5IYBdhLWcg3wBcaz - Afridi
你可以使用appenders创建一个logback.xml文件。没有从属性文件中执行此操作的选项。 - pvpkiran
你有看过这篇文章吗?它看起来和这个问题很相似:https://dev59.com/PFwZ5IYBdhLWcg3wBcaz - mhasan
我只是依赖于默认的 spring-boot 配置。我认为它默认使用 logback。 - membersound
显示剩余2条评论
4个回答

31

原来,如果我将以下属性设置为空,则控制台日志记录将被禁用:

logging.pattern.console=

或者在使用xml时进行注释。

  <!--<root level="error">-->
        <!--<appender-ref ref="console"/>-->
    <!--</root>-->

1
虽然不太美观,但这几乎是在不添加logback.xml的情况下禁用控制台日志记录的唯一方法。在我的使用情况中,添加额外的文件将是一件大事。 - Bogdan Calmac
你的方法会禁用应用程序启动时看到的日志打印。更好的选择是仅禁用Web调用日志,如“logging.level.org.springframework.web=OFF”。实际上,查看应用程序是否成功启动非常重要。 - Amit Kumar
6
新版本出现错误:ch.qos.logback.classic.PatternLayout("") - 空或null模式。 - Geln Yang

2
我创建了一个名为logback.xml的文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <logger name="org.springframework" level="ERROR"/>
    <logger name="org.hibernate" level="ERROR"/>
</configuration>

请查看此链接获取更多信息:https://www.mkyong.com/spring-boot/spring-boot-test-how-to-stop-debug-logs/

1
谢谢Jackson!正是我想要的! - Christopher Richa

2
  1. 在你的应用程序的 /resources/ 文件夹中创建一个名为 logback-spring.xml 的文件。
  2. 将下面的内容复制到 logback-spring.xml 中。
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
    <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%m%n</pattern>
        </encoder>
    </appender>
    <root level = "INFO">
        <appender-ref ref = "STDOUT"/>
    </root>
</configuration>

您可以添加:<root level="WARN"> - skyho
感谢您对“/资源/文件夹中的应用程序”提供的支持。由于某种奇怪的原因,所有文档和教程都以模糊且难以理解的方式指定了logback-spring.xml的位置。 - Introspective

-1

所有支持的日志系统都可以在Spring环境中使用“logging.level.*=LEVEL”设置记录器级别,其中“LEVEL”是TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF之一。根记录器可以使用logging.level.root进行配置。示例application.properties:

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR

请查看以下信息:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html 您还可以覆盖logback配置并将其设置为OFF
<configuration>
  <!-- turn OFF all logging (children can override) -->
  <root level="OFF">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

您可以在以下链接中找到更多信息:https://logback.qos.ch/manual/configuration.html#rootElement


2
logging.level.root=OFF 可以完全防止日志记录,也包括这里不需要的 logfile - membersound

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接