Java 如何设置log4j2 Mbean的contextName

Java 如何设置log4j2 Mbean的contextName,java,jmx,log4j2,Java,Jmx,Log4j2,在使用jvisualvm访问log4j2 MBean时,我看到log4j2包中的类型(contextName)是一个数字(对我来说是1482868390)。由于在查询中指定对象时将其作为“type”输入,所以我希望将其指定为更易于识别的名称。有没有办法在xml配置中设置contextName。 我认为有一种方法可以用于web应用程序,但我想将其设置为独立java应用程序。是的,这是可能的,但不是在配置中。可以通过对Log4j的一个ContextSelector子类化并重写其defaultCont

在使用jvisualvm访问log4j2 MBean时,我看到log4j2包中的类型(contextName)是一个数字(对我来说是1482868390)。由于在查询中指定对象时将其作为“type”输入,所以我希望将其指定为更易于识别的名称。有没有办法在xml配置中设置contextName。
我认为有一种方法可以用于web应用程序,但我想将其设置为独立java应用程序。

是的,这是可能的,但不是在配置中。可以通过对Log4j的一个ContextSelector子类化并重写其
defaultContextName()
方法来实现这一点

然后,通过使用系统属性
-DLog4jContextSelector=com.yourpackage.YourContextSelector
启动应用程序,告诉Log4j使用ContextSelector

如果要使所有记录器异步,则需要子类化,否则