2017-08-08 3 views
0

Ich arbeite an JBoss EAP 7. Ich benutze mein eigenes log4j2 anstelle von Jboss Logging. Also exclude ich sie in der Jboss-deployment-structure.xml Datei.Jboss EAP 7 Logging-Format

In meiner log4j2.xml-Datei habe ich Muster-Layout wie folgt erwähnt.

Aber wenn ich die Anwendung anfänglich starte, gibt es eine Klasse laden, in der die Protokolle korrekt wie unten gedruckt werden.

DEBUG|2017-08-08 13:20:26,993|Default.com.test.StartClass|deleting directory: C:\eclipse\workspace\WEB-INF\templates 

aber später, wenn Jboss-Server seine Subsystem startet Laden es infront meines tatsächlichen Muster stdout und das Hinzufügen einige andere Sachen hinzufügt.

13:39:06,997 INFO [stdout] (ServerService Thread Pool -- 87) INFO|2017-08-08 13:39:06,997|Default.com.test.AppXmlUnmarshaller|Unmarshalling took 342 milliseconds. 

Ich weiß nicht, warum nach dem Ausschließen des Subsystems auch dieses Muster Layout nimmt. Bitte helfen Sie mir, wie Sie das beheben können.

Vielen Dank im Voraus.

Antwort

0

JBoss EAP umschließt sowohl stdout als auch stderr in Loggern. Ich nehme an, Sie verwenden eine ConsoleAppender, die an stdout schreiben wird. Wenn Sie das Standardmusterpräfix vermeiden möchten, müssen Sie ein separates console-handler erstellen und ihm ein Muster zuweisen, das nur die Nachricht ausgibt. Erstellen Sie dann einen stdout Logger und weisen Sie ihm den neuen console-handler zu, wobei use-parent-handlers auf false eingestellt ist. Etwas wie die folgenden CLI-Befehle sollten es tun.

/subsystem=logging/pattern-formatter=msg-only-format:add(pattern="%s%n") 
/subsystem=logging/console-handler=stdout:add(named-formatter=msg-only-format, autoflush=true, target=System.out) 
/subsystem=logging/logger=stdout:add(handlers=[stdout], use-parent-handlers=false) 

Auch nur ein FYI, wenn Sie das Protokollierungssubsystem ausschließen, benötigen Sie diese Abhängigkeitsausschlüsse nicht. Das Protokollierungssubsystem fügt diese Abhängigkeiten zu Ihrer Bereitstellung hinzu.