Log4j 2.16 中的 PropertyConfigurator.configure() (log4j 1.2.4) 替换
Posted
技术标签:
【中文标题】Log4j 2.16 中的 PropertyConfigurator.configure() (log4j 1.2.4) 替换【英文标题】:PropertyConfigurator.configure() (log4j 1.2.4) replacement in log4j 2.16 【发布时间】:2022-01-20 06:48:02 【问题描述】:我们在具有 log4j 1.x 版本的 java 项目中使用属性配置。客户要求从 1.x 版本升级到 2.16。我将 jar 文件从 log4j 1.2.4 替换为 log4j 2.16。我得到的唯一错误是
导入 org.apache.log4j.PropertyConfigurator;
在主函数中,我使用了 PropertyConfigurator.configure(property.getProperty("LOG_PATH"));
PropertyConfigurator 是 log4j 1.2.4 jar 中可用的类。 因为我用 log4j 2.16 jar 替换了它,所以这个 PropertyConfigurator 类不可用。 我的问题是:1)我应该怎么做才能摆脱这个错误。 2) log4j 2.16 中替代 PropertyConfigurator 类的替代类是什么。
我们完全只使用属性文件。不是 xml。请帮帮我。
【问题讨论】:
【参考方案1】:请参考以下 Log4J2 文档 https://logging.apache.org/log4j/2.0/faq.html#reconfig_from_code
注意:确保将 log4j.xml/properties 文件重命名为 log4j2.xml/properties
例子:
import org.apache.logging.log4j.core.LoggerContext;
public void configureLog4j() throws IOException
String path = getLog4jConfigFilePath();
File file = new File(path);
if (file.exists())
LoggerContext context = (LoggerContext)LogManager.getContext(false);
context.setConfigLocation(file.toURI());
else
throw new FileNotFoundException(path);
【讨论】:
以上是关于Log4j 2.16 中的 PropertyConfigurator.configure() (log4j 1.2.4) 替换的主要内容,如果未能解决你的问题,请参考以下文章
修不完的bug:Log4j第三次发布漏洞补丁,开源社区已修复1/7受影响Java包
spring quartz 配置出错 按照网上写的先导入Quartz-2.16解压后根目录中quartz-all-2.1.6.jar和lib目录中的