我遇到了一个真正让我感到困惑的问题。我想用 JUL 日志(JDK 日志)尝试一些东西。我从以下简单程序开始:
package biz.ple;
import java.util.logging.LogManager;
import java.util.logging.Logger;
public class Application {
public static void main(String[] args)
{
Logger logA = LogManager.getLogManager().getLogger("LoggerA");
Logger logB = LogManager.getLogManager().getLogger("LoggerB");
if (logA == null) {
System.out.println("LoggerA is null!");
}
if (logB == null) {
System.out.println("LoggerB is null!");
}
String normalMsg = "Message without cookie prefix.";
String cookieMsg = "[Cookie] Message with a cookie prefix.";
logA.info(normalMsg);
logA.info(cookieMsg);
logB.info(normalMsg);
logB.info(cookieMsg);
}
}
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,记录器 logA 和 logB始终为空。我在文档中读到应用程序没有强引用的记录器我随时都会被 GC,但在我看来变量 logA 和 logB 确实是强引用,不是吗?
我真的不明白这一点,希望得到任何帮助。