为什么Spring Boot日志包含调试级别消息?

时间:2018-08-24 15:48:08

标签: java spring-boot logging

在我的Spring Boot应用程序中,我具有以下日志记录规范:

logging.level.org.springframework.web: INFO
logging.config: config/logback.xml

此外,在logback.xml中,级别也定义为INFO:

<configuration scan="false">
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
    <discriminator>
        <key>loggroup</key>
        <defaultValue>common</defaultValue>
    </discriminator>
    <sift>
        <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>logs/myservice-${loggroup}.log</file>
    </sift>
</appender>
<logger name="com.mycompany" level="INFO">
    <appender-ref ref="SIFT" />
</logger>
<root level="INFO">
    <appender-ref ref="SIFT" />
</root>

仍然收到调试级别日志消息:

{“ timestamp”:1535034810162,“ datetime”:“ 2018-08-23T10:33:30.162-0400”,“ hostname”:“ anarinsky-mbp.mycompany.local”,“ username”:“ alex”, “ level”:“ DEBUG”,“ thread”:“测试人员”,“ loggername”:“ org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping”,“ message”:“找到7个请求处理程序方法com.mycompany.was.service.integration.keyvalue.KeyValueController类:

2 个答案:

答案 0 :(得分:0)

您可以简单地添加:

<logger name="org.springframework" level="INFO">
    <appender-ref ref="SIFT" />
</logger>

logback.xml的结尾处,即com.mycompany的记录器之后/之前。

虽然不是100%确定这是引起问题的原因。另一种可能性是,对于SIFT附加程序,根日志级别为INFO,但是还有默认的日志附加程序也在并行运行,因此不受:

<root level="INFO">
    <appender-ref ref="SIFT" />
</root>

这是我的2美分,我可能错了,但也值得一试。

答案 1 :(得分:0)

您的配置不限制输出级别, 它将默认输出级别设置为INFO。 可以在代码中覆盖它, 情况似乎如此。

我相信您想设置一个阈值过滤器。

ThresholdFilterLogback Filters Page中进行了说明。