在 Scala 中禁用 SDK/jars 的日志记录

时间:2021-07-24 06:47:06

标签: scala logging logback

我使用 logback.xml 进行日志记录。我想禁用来自 3rd 方 jars/sdk 的日志。为此,我对该 jar 使用了日志级别 =“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>
'''

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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