我正在为我的应用程序使用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将日志消息打印到控制台?
答案 0 :(得分:13)
Spring boot附带内置logback
记录器,默认情况下配置为打印到控制台。
您需要覆盖logback
配置(在类路径上提供您自己的logback.xml
)。
这被描述为here - - 第66.1节
如何禁用logback logging read here -
你可以看到你必须提供值OFF
...类似于:
<configuration>
<include resource="base.xml" />
.
.
<property name="root.level.console" value="OFF" />
</configuration>
注意:请记住,这里的一般想法是来自spring-boot的logback配置很少。目的是您提供自己的logback配置并完全覆盖现有的配置 - 例如提供您自己的logback配置,只配置了log file-appender - 这应该是您的一般方法。
答案 1 :(得分:6)
file-appender.xml
中包含console-appender
而不是logback-spring.xml
以及以下配置:
<?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
答案 2 :(得分:3)
我尝试从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
答案 3 :(得分:1)
可以找到类似的讨论here。
我的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时,我犯了一个非常愚蠢的错误:在文件名的开头添加了一个空格。因此从未使用过该文件。所以只需再看一下文件名,将文件添加到&#34; src / main / resources&#34;并删除任何&#34; logging.config&#34;您的属性文件中的条目。
答案 4 :(得分:0)
使用最新的1.3.1版本测试,使用较新的版本base.xml已重命名为defaults.xml