Method getLogger() 不再是 log4j2 中 Logger 的成员?

2022-09-01 11:38:22

我有 并 导入 到我的构建路径中。但不知何故,以下代码失败了:log4j-api-2.0.0.jarlog4j-core-2.0.2.jar

import org.apache.logging.log4j.core.Logger;

public class TheClass {

    private static Logger log = Logger.getLogger(TheClass.class);

...

错误消息显示:

The method getLogger(Class<TheClass>) is undefined for the type Logger

我只是好奇不再是记录器中的有效方法吗?getLogger()


答案 1

您会注意到 Logger 不再声明此类方法。

log4j 版本 2 进行了一些重大更改。下面是更改日志。getLogger 似乎已被移动到 LogManager 类。

以下是他们建议进行迁移的方式。


答案 2

我举了一个例子来更好地理解。

private static Logger logger;
        static {
            try {   
                   // you need to do something like below instaed of Logger.getLogger(....);
                    logger = LogManager.getLogger(ResourceService.class); 
              } catch (Throwable th) {
                    throw new HRException("Cannot load the log property file", th);
            }
        }

推荐