gpt4 book ai didi

java - log4j2 找不到配置文件

转载 作者:行者123 更新时间:2023-11-30 10:13:50 27 4
gpt4 key购买 nike

我使用 Eclypse 开发了一个动态 Web 项目,我想使用 log4j2 将信息和错误记录到文件中。

我制作了配置文件,但是当我启动应用程序时出现这个错误:

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations.

根据文档,log4j2 应该在 WEB-INF 目录中寻找 log4j2.* 文件,但即使该文件在那里,我的应用程序仍然看不到它。

该文件为.properties 格式,因此不需要额外的包。

我做错了什么?

最佳答案

创建一个 Logger 类,比如 MyLogger,Log4j2 从属性“log4j.configurationFile”中查找配置文件位置,在类的静态 block 中设置该属性。这将确保配置文件位置在启动期间对 Log4j2 可用。您可以将配置文件放在应用程序外部。

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.File;
public class MyLogger {
static { System.setProperty("log4j.configurationFile",System.getProperty("prop.loc")+File.separator+"MyLog4j2.xml");
}

public static Logger getLogger(Class<?> clazz){
return LogManager.getLogger(clazz);
}
}

如下调用类初始化记录器

public class MyClass {

private static final Logger logger = MyLogger.getLogger(MyImpl.class);

public myMethod(){
logger.info("My logs");
}
}

关于java - log4j2 找不到配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51152355/

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