如何排除slf4j中maven依赖产生的日志?

How to exclude logs generated by maven dependencies in slf4j?

我是 slf4j 的新手。我已经使用 Apache HTTPClient 编写了 API 自动化脚本(Maven/TestNG 项目)并使用 slf4j 进行日志记录。当我 运行 日志级别为 DEBUG 的自动化脚本时,有很多 HTTPClient 本身生成的日志,我想要的日志就埋在其中。如何强制 slf4j 仅报告我的自动化日志并跳过其他所有内容?

这在一定程度上取决于您使用的 Runtime SLF4J 实现。

示例登录

如果您的运行时库是 Logback 那么配置文件可能如下所示:

文件:logback.xml

<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <logger name="your-package-name" level="DEBUG" />

  <root level="warn">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>
  • 只是在控制台上显示日志记录,请参阅 ConsoleAppender
  • 更新 <logger> 属性 name,并在其顶部输入您的包名称。所有子包也将包含在内。

PS:如果您使用 log4j 作为运行时依赖项,则配置类似。但如果是这样,请阅读Reasons to prefer logback over log4j