【问题标题】:Migrating log4j 1.2.x to log4j 2.16.0将 log4j 1.2.x 迁移到 log4j 2.16.0
【发布时间】:2022-01-20 02:49:47
【问题描述】:

将 log4j 1.2.x 迁移到 log4j 2.16.0

使用 PropertyConfigurator.configure 方法加载所有位于系统特定位置的 log4j 文件。

static {
   PropertyConfigurator.configure("C:/users/log4j.properties").
}

从外部位置配置 log4j 属性的替代方法是什么?

在 log4j2 中使用 PropertyConfigurator.configure 的替代方法是什么?

【问题讨论】:

  • 这能回答你的问题吗? How to configure log4j with a properties file
  • 从外部位置加载 log4j.properties。
  • 以上链接特定于 log4j 1.x 版本,我们支持 PropertyConfigurator 类。但是在 log4j 2.x 中不存在这种支持,那么应该采取什么方法来实现相同的目标

标签: java log4j2


【解决方案1】:

以下是加载外部 log4j 文件的两种方式。

在访问 Logger 语句之前使用,可能在静态块中

  1. System.setProperty("log4j.configurationFile","file:C:/path/log4j2.properties");
    
  2. ConfigurationSource source = new ConfigurationSource(new FileInputStream("C:/path/log4j2.properties"), new File(C:/path/log4j2.properties));
    Configurator.initialize(null, source);
    

发布这些方法,希望对其他人有用。

【讨论】:

    【解决方案2】:

    添加新的依赖项后你必须做一些代码更改。

    在 pom.xml 中添加如下依赖

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.16.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.16.0</version>
        </dependency>
    

    import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;替换你的java类文件导入import org.apache.log4j.Logger;

    然后将private static final Logger logger = Logger.getLogger(Test.class);替换为private static final Logger logger = LogManager.getLogger(Test.class);

    更多参考:click here

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 2019-02-05
    • 2016-05-20
    • 2015-09-02
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多