如何在slf4j中排除maven依赖项生成的日志?

时间:2015-10-12 06:03:06

标签: java maven log4j slf4j

我是slf4j的新手。我使用Apache HTTPClient编写了API自动化脚本(Maven / TestNG项目),并使用slf4j进行日志记录。当我使用日志级别DEBUG运行自动化脚本时,HTTPClient本身会生成大量日志,并且我的预期日志会被隐藏在其中。如何强制slf4j只报告我的自动化日志并跳过其他所有内容?

1 个答案:

答案 0 :(得分:2)

这取决于您正在使用的 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