如何调整Maven依赖的BrowserMob Proxy外部库日志级别
解决BrowserMob Proxy DEBUG日志过于冗长的问题
我之前也碰到过这个糟心的情况——一堆底层网络细节日志直接把自己程序的输出完全淹没了,下面给你几个靠谱的解决办法,根据你项目用的日志框架选就行:
1. 如果你用Logback(Spring Boot默认框架)
在src/main/resources/logback.xml或者logback-spring.xml里添加以下配置,把相关依赖包的日志级别调到INFO或者更高级别:
<!-- 抑制BrowserMob核心包的DEBUG日志 --> <logger name="net.lightbody.bmp" level="INFO" /> <!-- 抑制底层LittleProxy的冗余日志 --> <logger name="org.littleshoot.proxy" level="INFO" /> <!-- Netty也是日志输出大户,直接降级到WARN --> <logger name="io.netty" level="WARN" />
要是还是有多余日志干扰,你可以把INFO改成WARN甚至ERROR,根据自己的调试需求灵活调整。
2. 如果你用Log4j2
在src/main/resources/log4j2.xml里添加日志级别配置:
<Loggers> <!-- 调整BrowserMob日志级别,避免重复输出 --> <Logger name="net.lightbody.bmp" level="INFO" additivity="false"> <AppenderRef ref="Console"/> </Logger> <!-- 处理LittleProxy底层日志 --> <Logger name="org.littleshoot.proxy" level="INFO" additivity="false"> <AppenderRef ref="Console"/> </Logger> <!-- 压制Netty的DEBUG日志 --> <Logger name="io.netty" level="WARN" additivity="false"> <AppenderRef ref="Console"/> </Logger> <!-- 保留自己项目的日志级别不受影响 --> <Root level="DEBUG"> <AppenderRef ref="Console"/> </Root> </Loggers>
additivity="false"的作用是避免这些依赖的日志重复输出到根日志中。
3. 如果你用旧版Log4j
修改src/main/resources/log4j.properties文件:
# 降低BrowserMob相关包的日志级别 log4j.logger.net.lightbody.bmp=INFO log4j.logger.org.littleshoot.proxy=INFO log4j.logger.io.netty=WARN # 保持自己项目包的日志级别正常 log4j.logger.com.yourprojectpackage=DEBUG
额外提示:排除不必要的日志依赖(可选)
如果你的项目已经有自己的日志实现,还可以在Maven依赖里排除BrowserMob自带的冗余日志桥接包,不过这一步不是必须的,核心解决还是靠日志级别调整:
<dependency> <groupId>net.lightbody.bmp</groupId> <artifactId>browsermob-core-littleproxy</artifactId> <version>2.1.0-beta-3</version> <exclusions> <!-- 比如排除SLF4J的JDK日志桥接包,如果项目用了其他日志实现 --> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> </exclusion> </exclusions> </dependency>
调整完之后,那些铺天盖地的DEBUG日志就会被过滤掉,你就能正常查看自己程序的输出内容啦~
内容的提问来源于stack exchange,提问作者pete
相关产品推荐
相关产品推荐

