Java 里 Logger(通常指 java.util.logging.Logger,也可能是 Log4j / SLF4J)“不输出”是非常常见的问题,原因一般集中在配置、级别、Handler、依赖这几块。下面按最常见情况给你排查清单。
Logger logger = Logger.getLogger("test");
logger.info("hello");
可能不输出原因:
INFO✅ 解决:
logger.setLevel(Level.ALL);
Logger.getGlobal().setLevel(Level.ALL);
JUL 必须有 Handler 才能输出
Logger logger = Logger.getLogger("test");
logger.setUseParentHandlers(false); // 关闭父 handler
// 但没加任何 Handler → 什么都不会输出
✅ 正确示例:
Logger logger = Logger.getLogger("test");
logger.setUseParentHandlers(false);
logger.addHandler(new ConsoleHandler());
logger.setLevel(Level.ALL);
ConsoleHandler h = new ConsoleHandler();
h.setLevel(Level.WARNING); // 只输出 WARNING 以上
Logger.getAnonymousLogger()匿名 logger 默认不继承 root handler,容易“看起来没输出”。
例如:
private static final Logger log = LoggerFactory.getLogger(A.class);
但 classpath 没有 logback / log4j 实现
✅ 检查:
logback-classicNoClassDefFoundErrorlogback.xml 没放在 resourcessrc/main/resources<root level="WARN">
→ info() / debug() 不会输出
logging:
level:
root: warn
→ 默认看不到 INFO
Logger logger = Logger.getLogger("demo");
logger.setLevel(Level.ALL);
logger.setUseParentHandlers(false);
ConsoleHandler ch = new ConsoleHandler();
ch.setLevel(Level.ALL);
logger.addHandler(ch);
logger.info("✅ 输出成功");
你可以告诉我:
我可以直接帮你写一份可运行的最小示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。