在 Scala 中禁用来自 SDKs/jars 的日志记录

Disable logging from SDKs/jars in scala

我正在使用 logback.xml 进行日志记录。我想禁用来自第 3 方 jars/SDKs 的日志。为此,我为那个 jar 使用了 log level="OFF",但日志仍然被记录。接下来,我尝试对代码库中的一个文件使用相同的日志级别,我能够为我的文件禁用日志。

下面是我的 logback 配置:

'''

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern> Some pattern </pattern>
    </encoder>
</appender>

<logger name="<sdk file path>" level="OFF"/>         !--- This doesn't work ---!    
<logger name="<file from my codebase>" level="OFF"/>  !--- This works ---!

<root level="INFO">
    <appender-ref ref="STDOUT"/>
</root>
'''

库可以使用它喜欢的任何 name 作为记录器,因此 name 不一定与库的路径匹配。

pattern 中的 %logger 字段给出记录器的 name,因此您将在日志输出中看到实际名称。如果您看到要抑制的输出,请在 logger 元素中使用日志中的 name(或前缀)。

我还建议将 root 设置为最低级别,然后针对您感兴趣的特定库提高级别。

<logger name="myloggername" level="DEBUG"/>

<root level="ERROR">
    <appender-ref ref="STDOUT"/>
</root>