2015-06-13 4 views
12

Ich möchte den log4j2 JUL-Adapter in einer OSGi-Umgebung verwenden. So direkt ich log4j2 OSGi-Bundles und legen Sie die folgende Systemeigenschaft in einer meiner benutzerdefinierten OSGi-Bundle verwendet als here erwähnt:So legen Sie eine Systemeigenschaft für den log4j2 JUL-Adapter in einer OSGi-Umgebung fest

System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager"); 

Es scheint, wie diese Systemeigenschaft setzt nicht, weil Protokolle von Java util Rahmen kommt nicht los zu Appendern.

Das OSGi-Framework, das ich verwende, ist Eclipse Equinox.

Wo könnte ich diese Systemeigenschaft für die Verwendung mit OSGi festlegen?

EDIT:

Soweit ich verstand hier das Problem ist ganz am Betteln des JVM beginnt die erforderliche Eigenschaft dh java.util.logging.manager wird auf den Standardwert, so dass diese Umgebung innerhalb der OSGi-Einstellung ist nicht effektiv, selbst wenn diese Eigenschaft nicht mit der Option -D festgelegt werden kann, da die log4j2-OSGi-Bundles nicht dem Klassenpfad ausgesetzt sind, sodass die Ausnahme "class not found" nicht auftritt.

Jede Hilfe ist sehr zu schätzen in dieser Angelegenheit.

+0

Ich bin auch mit diesem Problem konfrontiert. Hast du es gelöst? – hbelmiro

Antwort

3

Im Allgemeinen, wenn eine Eigenschaft durch die System.setProperty API Einstellung nicht OK funktioniert (vielleicht, weil die Eigenschaft bereits gelesen wurde, bevor Sie es sogar überschreiben können), sollten Sie versuchen, es aus der sehr JVM Start Einstellung, die Eingabe von " -D "Argumente an der Befehlszeile:

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager 
+1

Dies funktioniert nicht, da zum Setzen dieser Eigenschaft die log4j2-jars im Klassenpfad sein müssen, aber die log4j-Klassen in der OSGi-Umgebung für den java-Hauptklassenpfad nicht sichtbar sind. Wenn wir also versuchen, diese Eigenschaft so zu setzen, erhalten wir die Ausnahme class nicht gefunden. – Grant

+0

@Grant werfen Sie einen Blick auf http://stackoverflow.com/a/43876384/3245762, um das Klassenpfadproblem zu lösen. – hbelmiro

Verwandte Themen