如何排除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
我是 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