因此,我试图将我们的遗留应用程序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
1条答案
按热度按时间cgvd09ve1#
您问题中的代码只是通过JMX导出一些日志记录器数据用于监控工具。执行迁移是重新评估此类代码的实用性的最佳时机。
如果您不使用JMX监视工具,只需删除代码。
如果您确实使用了JMX监控工具,那么这段代码也是无用的,因为Log4j 2.x默认情况下通过JMX导出数据(参见
LoggerConfigAdminMBean
)。然而,您需要调整监控工具以适应不同的数据集。