春季启动:禁用记录器

时间:2020-03-03 11:54:00

标签: spring spring-boot spring-logback

这是我的application.properties文件夹下的_/config

logging.file=logging.xml

这是_/config文件夹的内容:

$ tree config  
config
├── application-bo.properties
├── application-loc.properties
├── application-pre.properties
├── application.properties
├── application-pro.properties
└── logging.xml

logging.xml的内容是:

<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />

    <!-- LOG "com.baeldung*" at TRACE level -->
    <logger name="net.gencat.transversal.espaidoc.common.dao.RedisDao" level="OFF" additivity="false" />
</configuration>

如您所见,我正在尝试禁用从net.gencat.transversal.espaidoc.common.dao.RedisDao记录器内部生成的日志。

但是,我还在控制台上收到日志消息。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您要配置的内容仅适用于文件追加器。

您是否尝试过定义控制台附加程序,仅添加控制台的特定配置?

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>${LOG_PATTERN}</pattern>
    </encoder>
</appender>

<logger name="net.gencat.transversal.espaidoc.common.dao.RedisDao" level="OFF" additivity="false">
    <appender-ref ref="console" />
</logger>

答案 1 :(得分:0)

通常在春季启动中,您可以编辑application.properties(或yaml)文件并定义一系列日志记录定义,包括级别。

但是,这意味着您实际上不需要创建logging.xml文件-spring boot将仅根据application.properties/yaml文件中找到的定义配置日志记录:

logging.level.net.gencat.transversal.espaidoc.common.dao.RedisDao=OFF

关于logging.file的一条注释是错误的: 如果要通过properties / yaml文件配置日志记录,则可以使用此属性来指定将日志写入其中的输出文件名(就像在较旧的应用程序中直接配置文件追加程序一样)。

如果您真的想维护XML文件(可能的话),则可以创建:src/main/resources/logback-spring.xml文件并将定义放在此处。 同样,在这种情况下,您不需要application.properties级别的任何属性(包括logging.file属性)。

以下是这种方法的示例:

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" scanPeriod="60 seconds">
   <logger name="net.gencat.transversal.espaidoc.common.dao.RedisDao" level="OFF"/>
   <include resource="org/springframework/boot/logging/logback/base.xml"/>
   <jmxConfigurator/>
</configuration>