LoggerDynamicMBean log4j 1.x到log42

z9smfwbn  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(93)

因此,我试图将我们的遗留应用程序java log4j 1.x迁移到log4j2
我看到一篇关于使用桥API迁移这个log4j的文章,但是,有一件事让我很困扰。
这就是罪魁祸首

ObjectName addLoggerMBean(MBeanServer server, Logger logger)
{
    String name = logger.getName();
    ObjectName objectName = null;
    
    try
    {
        LoggerDynamicMBean loggerMBean = new LoggerDynamicMBean(logger);
        objectName = new ObjectName("log4j.category", "logger", name);

        if (!server.isRegistered(objectName))
        {
            server.registerMBean(loggerMBean, objectName);
           
        }
    }
    catch (Exception e)
    {
        // log.error("Could not add loggerMBean for ["+name+"].", e);
    }
    
    return objectName;
}

字符串
因此,上面的代码片段在org.apache.log4j.jmx.LoggerDynamicMBean库下创建了LoggerDynamicMBean的示例,不幸的是,这似乎不是现有log4j bridge API的一部分。
有人知道如何实现这个吗?很抱歉的核心问题,只是新的java和这个应用程序甚至不运行在本地。所以想想看:D

cgvd09ve

cgvd09ve1#

您问题中的代码只是通过JMX导出一些日志记录器数据用于监控工具。执行迁移是重新评估此类代码的实用性的最佳时机。
如果您不使用JMX监视工具,只需删除代码。
如果您确实使用了JMX监控工具,那么这段代码也是无用的,因为Log4j 2.x默认情况下通过JMX导出数据(参见LoggerConfigAdminMBean)。然而,您需要调整监控工具以适应不同的数据集。

相关问题