gpt4 book ai didi

java - 将 Logger.info 放在静态 block 中

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:51 26 4
gpt4 key购买 nike

我有以下类(class)

public class MyClass
{
private static final Logger logger = Logger.getLogger(MyClass.class);

static
{
logger.info("some text");
}
}

可以安全地假设当我们到达 logger.info 时,log4j 系统已初始化并准备好发出日志吗?

看来,如果我能够执行 Logger.getLogger() 并取回有效的 Logger 实例,这意味着 Log4j 已初始化,对吗?

最佳答案

是的,是的。静态初始化器(即 static {} block 和对静态变量的初始赋值)按照它们声明的顺序执行。

log4j 的默认初始化依赖于 log4j 类 LogManager 中的静态 block ,一旦加载 Logger 类就会执行该静态 block ,并且会在首次使用之前加载。这就是为什么你的建筑能奏效。

关于java - 将 Logger.info 放在静态 block 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com