知識庫 / Spring / Spring Boot RSS 訂閱

如何禁用 Spring Boot 控制枱日誌

Logging,Spring Boot
HongKong
6
01:41 PM · Dec 06 ,2025

1. 概述

通常,控制枱日誌能讓我們以簡單直觀的方式調試系統。然而,在某些情況下,我們可能不想在系統中啓用此功能。

在本快速教程中,我們將學習如何在運行 Spring Boot 應用程序時避免將日誌寫入控制枱

我們將採用簡潔明瞭的示例,展示如何實現這一目標,無論我們是否使用 Logback、Log4js2 還是 Java Util Logging 框架。

要了解更多關於 Spring Boot 中用於日誌記錄的框架的信息,我們建議您查看我們的 Logging in Spring Boot 教程。

2. 如何禁用 Logback 的控制枱輸出

如果我們的項目使用了 Spring Boot 啓動器,那麼 spring-boot-starter-logging 依賴項也會包含在內。

這個啓動器配置了 Logback 作為默認框架,並且默認情況下只將日誌輸出到控制枱。

可以通過添加 logback-spring.xml 文件到我們的資源目錄中來自定義此配置。

例如,讓我們配置 XML 以禁用控制枱輸出並僅將日誌記錄到文件中:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource=
      "org/springframework/boot/logging/logback/defaults.xml" />
    <include resource=
      "org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>
</configuration>

此外,我們需要在我們的 application.properties 文件中配置 logging.file 屬性:

logging.file=baeldung-disabled-console.log

注意:實際上禁用控制枱輸出的原因是我們沒有將 console-appender.xml 包含在我們的 XML 文件中,因此一個空 configuration 標籤也可以實現同樣的效果。

或者,我們可以通過使用應用程序屬性覆蓋默認配置來避免創建 XML 文件。

例如,我們可以利用 logging.pattern.console 屬性:

logging.pattern.console=

此屬性被翻譯為 CONSOLE_LOG_PATTERN 系統屬性,然後由 Spring 默認配置使用。

這種方法當然不如前一種方法乾淨且穩健。它並非該屬性的預期用途,因此此“技巧”可能在未來某個時候由 Logback 不支持。

此外,我們可以通過將根日誌記錄器的級別設置為 OFF 來禁用所有日誌活動。

logging.level.root=OFF

3. 如何避免在控制枱中記錄 Log4j2 的日誌

正如我們所知,Log4j2 支持使用 XML、JSON、YAML 或 properties 格式來配置其日誌行為。

為了簡化説明,我們現在將演示一個簡單的 log4j2.xml 文件的示例。

其他格式都遵循相同的配置結構:

<Configuration status="INFO">
    <Appenders>
        <File name="MyFile" fileName="baeldung.log"
          immediateFlush="true" append="false">
        <PatternLayout pattern=
          "%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
</Configuration>

正如 Logback 的配置一樣,框架避免將日誌輸出到控制枱的原因並非配置本身,而是根日誌器沒有引用 Console Appender。

4. 如何禁用 Java Util Logging 的控制枱日誌

Java Util Logging(或簡稱“JUL”)在如今的 Spring Boot 應用中可能不是最流行的日誌解決方案。

無論如何,我們將分析如何消除控制枱日誌,以防框架存在於我們的項目中。

我們只需要將以下值添加到資源文件夾中的默認 logging.properties 文件中:

handlers=java.util.logging.FileHandler
java.util.logging.FileHandler.pattern=baeldung.log
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

幷包含在我們的 application.properties 文件中 logging.file 屬性。 任何值都可以生效:

logging.file=true

5. 結論

通過這些簡短的示例,我們現在可以輕鬆地在我們的應用程序中禁用控制枱日誌,無論我們使用什麼日誌框架。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.