将 log4j 1.2.x 迁移到 log4j 2.16.0

     2023-02-18     69

关键词:

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

使用 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 中不存在这种支持,那么应该采取什么方法来实现相同的目标 【参考方案1】:

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

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

    System.setProperty("log4j.configurationFile","file:C:/path/log4j2.properties");
    
    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

【讨论】:

由于包结构从 log4j1.x 到 log4j2.x 发生了变化,所以我们更改了这些声明,但我的问题与更改包无关 来自 Log4J 2 的文档:logging.apache.org/log4j/2.0/faq.html#reconfig_from_code

在 log4j 1.2 到 log4j 2 的迁移中,如何处理 DailyRollingFileAppender 类?

】在log4j1.2到log4j2的迁移中,如何处理DailyRollingFileAppender类?【英文标题】:Inlog4j1.2tolog4j2migration,whattodowiththeDailyRollingFileAppenderclass?【发布时间】:2015-09-0204:20:16【问题描述】:我正在将一个Java项目从使用log4j1.2进行日志记录迁... 查看详情

将项目从 log4j 迁移到 slf4j+log4j

】将项目从log4j迁移到slf4j+log4j【英文标题】:migratingaprojectfromlog4jtoslf4j+log4j【发布时间】:2011-07-1310:11:23【问题描述】:我有一个直接使用log4j的大型网络项目,以及许多3rd-party库和日志库的组合。我们的代码库-直接使用log4j。... 查看详情

log4j 2 迁移桥 log4j-1.2-api.jar 缺少类

】log4j2迁移桥log4j-1.2-api.jar缺少类【英文标题】:log4j2migrationbridgelog4j-1.2-api.jarmissingclasses【发布时间】:2016-05-2022:34:38【问题描述】:我正在将我们应用程序中的log4j版本从log4j1.2.16升级到log4j2.5。我们有很多依赖项,所以我使用... 查看详情

从 log4j 1.2.17 迁移后的 log4j 2.2 问题

】从log4j1.2.17迁移后的log4j2.2问题【英文标题】:log4j2.2issuesaftermigratingfromlog4j1.2.17【发布时间】:2015-04-0211:44:48【问题描述】:我已经从log4j1.2.17迁移到log4j2.2。我遇到了以下问题:我的AsyncLogger就像一个同步的一样工作。这是我... 查看详情

将 LogStash Log4j 配置升级到 Log4j2

...【问题描述】:我正在尝试将我的SpringBoot应用程序从Log4j迁移到Log4j2。我了解Log4j2从原始Log4j更改了.properties配置的语法。这是我原始Log4j配置的sn-p:log4j.appender.logs 查看详情

Log4j 1:如何在不将版本更新到 2.15.0 的情况下缓解 log4j 中的漏洞

】Log4j1:如何在不将版本更新到2.15.0的情况下缓解log4j中的漏洞【英文标题】:Log4j1:HowtomitigatethevulnerabilityinLog4jwithoutupdatingversionto2.15.0【发布时间】:2022-01-1618:31:23【问题描述】:我正在使用log4j1.2.16。我将它与mavenseleniumtestngjav... 查看详情

将 log4j2.properties 配置到 Spring Boot 中的问题(使用 gradle)

】将log4j2.properties配置到SpringBoot中的问题(使用gradle)【英文标题】:Problemwithconfiguringlog4j2.propertiesintospringboot(usinggradle)【发布时间】:2019-10-2615:14:29【问题描述】:我在scr/main/resources中添加了一个log4j2.properties文件,但它没有... 查看详情

更改 ActiveMQ Log4j 版本

】更改ActiveMQLog4j版本【英文标题】:ChangeActiveMQLog4jversion【发布时间】:2022-01-1906:28:05【问题描述】:我有一个使用activemq-all作为依赖项的Gradle项目,在项目中我使用ActiveMQjar附带的Log4j。最新的ActiveMQ版本还在使用Log4j1.2.x,我... 查看详情

log4j

参考链接: http://www.iteye.com/topic/378077 推荐使用1.2.X版,下载地址:http://logging.apache.org/log4j/1.2/download.html 如果使用Maven管理项目,添加maven依赖    <dependency>  &n 查看详情

将 Apache Solr 8.10.1 log4j 2.14.1 版本升级到 2.15 以解决严重漏洞

】将ApacheSolr8.10.1log4j2.14.1版本升级到2.15以解决严重漏洞【英文标题】:UpgradeApacheSolr8.10.1log4j2.14.1versionto2.15toaddresscriticalvulnerability【发布时间】:2022-01-1701:53:13【问题描述】:最近发现了criticallog4jvulnerability。我想升级当前Solr实... 查看详情

什么相当于 log4j 2 中的 log4j 1 `log4j.appender.SYSLOG.Header=true`?

...】:2015-08-0407:29:58【问题描述】:我正在将log4j.properties迁移到log4j2.xml。前者中的Syslogappender有一个配置 查看详情

我们如何将更高版本的 Log4j 设置为 grails 应用程序

】我们如何将更高版本的Log4j设置为grails应用程序【英文标题】:HowcanwesetahigherversionofLog4jtograilsapp【发布时间】:2022-01-1719:48:08【问题描述】:我的grails应用程序中有我的log4j设置,版本为2.4.3。我在lib文件夹中的log4j版本是1.2.17... 查看详情

log4j2配置文件log4j2.xml详解(转载)

参考技术A最近由于项目的需要,我们把log4j1.x的版本全部迁移成log4j2.x的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方案)以及log4j2配置文件的详解,就需要我们来好好聊一聊了。本... 查看详情

log4j:将特定类的输出记录到特定的 appender

】log4j:将特定类的输出记录到特定的appender【英文标题】:log4j:Logoutputofaspecificclasstoaspecificappender【发布时间】:2011-02-1508:44:42【问题描述】:我使用log4j并希望将某些Logger的输出路由到特定文件。我已经有多个附加程序。现在... 查看详情

Orbeon CE Log4j

】OrbeonCELog4j【英文标题】:【发布时间】:2022-01-2211:22:08【问题描述】:是否有计划将OrbeonCE日志更新到log4j2.17,如果是,何时更新?我们知道当前的log4j1.X版本不易受到最近漏洞的影响,但其他漏洞仍然存在。【问题讨论】:... 查看详情

如何将 java.util.logging 发送到 log4j?

】如何将java.util.logging发送到log4j?【英文标题】:Howtosendjava.util.loggingtolog4j?【发布时间】:2010-10-2613:52:07【问题描述】:我有一个现有的应用程序,它针对log4j执行所有日志记录。我们使用了许多其他库,这些库要么也使用log4j... 查看详情

记录到多个 syslog 服务器 - log4j

】记录到多个syslog服务器-log4j【英文标题】:Loggingtomultiplesyslogservers-log4j【发布时间】:2009-08-3115:10:52【问题描述】:我可以将日志信息发送到多个系统日志服务器吗?我们的IT部门有2台syslog服务器(用于冗余),并希望应用程... 查看详情

如何将堆栈跟踪发送到 log4j?

】如何将堆栈跟踪发送到log4j?【英文标题】:Howtosendastacktracetolog4j?【发布时间】:2011-05-1920:49:33【问题描述】:假设你捕获了一个异常并在标准输出(比如控制台)上得到以下信息,如果你执行e.printStackTrace():java.io.FileNotFound... 查看详情