2016-04-08 11 views
2

Beim Zugriff auf log4j2 MBeans mit jvisgalvm, sehe ich, dass der Typ (contextName) im log4j2-Paket eine Zahl ist (für mich ist es 1482868390). Da dies bei der Angabe von Object in der Abfrage als 'Typ' eingegeben wird, möchte ich es für einen besser erkennbaren Namen angeben, den ich bevorzuge. Gibt es eine Möglichkeit, den Kontextnamen in der XML-Konfiguration festzulegen. Ich denke, es gibt eine Möglichkeit, dies für Webanwendungen zu tun, aber ich möchte dies für eine eigenständige Java-Anwendung festlegen.Wie ContextName von Log4j2 MBean gesetzt

Antwort

0

Ja, das ist möglich, aber nicht in der Konfiguration. Sie können dies erreichen, indem Sie einen der ContextSelectors von Log4j ableiten und dessen defaultContextName()-Methode überschreiben.

Anschließend weisen Sie Log4j an, Ihren ContextSelector zu verwenden, indem Sie Ihre Anwendung mit der Systemeigenschaft -DLog4jContextSelector=com.yourpackage.YourContextSelector starten. Wenn Sie alle Logger asynchron machen, möchten Sie die Unterklasse AsyncLoggerContextSelector, andernfalls ClassLoaderContextSelector.