在 Java 里“Logger 丢日志”通常不是真的“没了”,而是被吞掉、被覆盖、被异步丢弃或配置原因没输出。下面按常见原因 → 现象 → 解决办法说明,覆盖 java.util.logging(JUL)、Log4j / Log4j2、Logback。
现象:代码里打了 debug() / info(),但什么都没看到。
原因:
WARN 或 ERROR解决:
<root level="INFO">
.level=INFO
✅ 先确认:logger.isInfoEnabled() 是否为 true
现象:
原因:
AsyncAppender / Log4j2 AsyncLogger解决:
kill -9<AsyncLogger ringBufferSize="262144"/>
现象:
log.info()原因:
log4jlog4j-over-slf4jjul-to-slf4jslf4j-log4j12解决:
mvn dependency:tree
保留 一套 实现(推荐 Logback 或 Log4j2)
现象:
常见错误:
append=false 被覆盖检查:
FileNotFoundException(常被吞)现象:
典型错误:
try {
doSomething();
} catch (Exception e) {
// 啥都没做
}
解决:
catch (Exception e) {
log.error("doSomething failed", e);
}
现象:
错误示例:
Logger log = Logger.getLogger("test");
✅ 推荐:
private static final Logger log =
LoggerFactory.getLogger(XxxService.class);
坑点:
解决:
handlers=java.util.logging.FileHandler
.level=INFO
java.util.logging.FileHandler.level=INFO
现象:
原因:
解决:
你可以贴:
我可以直接帮你定位是哪一类问题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。