Spring Boot :禁用记录器

inb24sb2  于 2022-12-02  发布在  Spring
关注(0)|答案(2)|浏览(159)

这是我的_/config下的_/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 logger内部生成的日志。
但是,我在控制台上收到了日志消息。
有什么想法吗?

ghg1uchk

ghg1uchk1#

您正在配置的内容仅适用于文件附加器。
您是否尝试过定义控制台附加器并仅添加控制台的特定配置?

<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>
wnavrhmk

wnavrhmk2#

一般来说,在spring Boot 中,您可以编辑application.properties(或yaml)文件并定义一系列日志定义,包括级别。
然而,这意味着您实际上并不需要创建logging.xml文件- spring Boot 将仅在application.properties/yaml文件中找到的定义之外配置日志记录:

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

关于logging.file的一个注意事项是错误的:如果你通过properties/yaml file配置日志记录-你可以使用这个属性来指定日志将被写入的输出文件名(就像在旧的应用程序中直接配置文件附加器一样)。
如果你真的想维护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>

相关问题