我正在按照Apache的指导将一个大型应用程序从Log4j 1迁移到Log4j 2。我偶然发现了Log4j1的LocationInfo类的用法,现在我不知道如何调整代码以适合Log4j2。我检查了Log4j2 API和实现,以查找具有该名称的类。不幸的是,没有任何成功。此外,这个问题没有提到的指南或其他任何地方,我检查了网站。有人有一个想法如何解决它?
我正在按照Apache的指导将一个大型应用程序从Log4j 1迁移到Log4j 2。我偶然发现了Log4j1的LocationInfo类的用法,现在我不知道如何调整代码以适合Log4j2。我检查了Log4j2 API和实现,以查找具有该名称的类。不幸的是,没有任何成功。此外,这个问题没有提到的指南或其他任何地方,我检查了网站。有人有一个想法如何解决它?
1条答案
按热度按时间lskq00tm1#
在Log4j 2.x Core中没有使用
LocationInfo
类,因为使用的是标准的JavaStackTraceElement
。当然,在Log4j 1.x Bridge中仍然存在LocationInfo
类(参见javadoc)。要检索
StackTraceElement
,只需调用LogEvent#getSource()
。请注意,检索位置信息是一项开销很大的操作,因此,如果需要,它会延迟执行。
AsyncLogger
默认情况下不检索位置信息。