如何关闭Fakemongo日志?解决日志占用大量空间问题
关闭Fakemongo冗长日志的解决方案
搞定Fongo的冗长DEBUG日志其实很简单,核心就是调整它相关包的日志输出级别——把DEBUG级别的日志关掉或者调到INFO级别就行。根据你使用的日志框架不同,配置方式略有区别,我给你整理了几种常见场景的配置方法:
1. 如果你用的是Logback(比如Spring Boot项目)
在你的logback.xml或者logback-spring.xml中添加以下配置片段,直接限制Fongo相关包的日志级别:
<!-- 关闭Fongo核心类的DEBUG日志,也可以把level改成INFO保留关键日志 --> <logger name="com.mongodb.FongoDBCollection" level="OFF"/> <logger name="com.github.fakemongo" level="OFF"/>
2. 如果你用的是Log4j 2
在log4j2.xml中配置对应的Logger规则:
<Logger name="com.mongodb.FongoDBCollection" level="OFF" additivity="false"> <AppenderRef ref="YourDefaultAppender"/> </Logger> <Logger name="com.github.fakemongo" level="OFF" additivity="false"> <AppenderRef ref="YourDefaultAppender"/> </Logger>
注:
additivity="false"是为了避免日志重复输出到根Logger的Appender里,根据你的实际配置可以调整。
3. 如果你用的是Java Util Logging(JUL)
方式一:通过配置文件
在项目的logging.properties中添加:
com.mongodb.FongoDBCollection.level=OFF com.github.fakemongo.level=OFF
方式二:代码中动态设置(适合测试类临时调整)
如果只是想在测试环境中关闭这些日志,可以在测试类的初始化方法里添加代码:
import java.util.logging.Logger; import java.util.logging.Level; @BeforeClass public static void setupFongoLogging() { // 关闭Fongo相关的DEBUG日志 Logger.getLogger("com.mongodb.FongoDBCollection").setLevel(Level.OFF); Logger.getLogger("com.github.fakemongo").setLevel(Level.OFF); }
原理说明
Fongo底层使用SLF4J作为日志门面,所以不管你用的是哪种日志实现框架,只要针对com.mongodb.FongoDBCollection和com.github.fakemongo这两个包调整日志级别,就能彻底解决冗长日志占用存储空间的问题。如果还想保留一些关键日志,可以把OFF换成INFO,这样只会输出重要的运行信息,不会有大量DEBUG级别的细节日志。
内容的提问来源于stack exchange,提问作者arunkumar sambu
相关产品推荐
相关产品推荐

