[英]Prevent Spring Boot from printing logs to console
我正在為我的應用程序使用spring boot,我正在使用默認的spring boot logging。
在我的application.properties
,我添加了logging.file
文件路徑,
logging.file= ${logger_path}
我的pom.xml
包含
<logger_path>/tmp/app.log</logger_path>
當我啟動應用程序時,它會將日志消息打印到/tmp/app.log
的文件,但問題是它還會在控制台上打印日志消息。 當我指定了一個log file
時,我真的不明白為什么它在控制台上打印( 雖然它將它們打印到指定的文件 )。
是否有任何配置可以防止spring boot將日志消息打印到控制台?
Spring引導帶有內置的logback
logger,它被配置為默認打印到控制台。
您需要覆蓋logback
配置(在類路徑上提供您自己的logback.xml
)。 這在這里描述 - - 第66.1節
如何禁用此處的 logback日志記錄 -
你可以看到你必須提供OFF
值...類似於:
<configuration>
<include resource="base.xml" />
.
.
<property name="root.level.console" value="OFF" />
</configuration>
注意:請記住,這里的一般想法是來自spring-boot的logback配置是最小的。 目的是您提供自己的logback配置並完全覆蓋現有配置 - 例如,提供您自己的logback配置,只配置了log file-appender - 這應該是您的一般方法。
在logback-spring.xml
包含file-appender.xml
而不是console-appender
以及以下配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</configuration>
您還需要將logging.file
添加到application.properties
這符合Spring啟動文檔中提到的內容 - http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html
我嘗試從logback.xml中刪除控制台配置。 但是,它仍然在登錄控制台。 所以我做的是,我剛剛刪除了springboot在日志記錄配置中添加的appender。 因此,我們可以在控制台和單獨的日志文件中停止springboot日志記錄。 在應用程序的末尾添加以下行,添加特定的appender。 您的自定義appender不應與任何這些appender名稱匹配。 它對我有用。
// get instance of your log4j instance
Logger logger = LogManager.getRootLogger();
logger.removeAppender("CONSOLE"); // stops console logging
logger.removeAppender("LOGFILE"); // stops file logging
這里可以找到類似的討論。
我的logback.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>
萬一你仍然遇到一個問題:我已經閱讀了很多關於這個主題的討論,而且對我來說根本不起作用。 不幸的是,當我第一次創建文件logback.xml時,我犯了一個非常愚蠢的錯誤:在文件名的開頭添加了一個空格。 因此從未使用過該文件。 所以只需再看一下文件名,在“src / main / resources”中添加文件,並從屬性文件中刪除所有“logging.config”條目。
使用最新的1.3.1版本進行測試,使用較新的版本base.xml已重命名為defaults.xml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.