2015-05-27 14 views
9

Ich habe Verwirrung beim Einrichten der Anmeldung in Wildfly-8.2.0. Anfangs hatte ich mein eigenes Logging-System verwendet, mit log4j.xml in der WAR-Datei, alles funktionierte sehr gut. Wenn ich jedoch Änderungen an der Protokollkonfiguration vornahm, muss die Anwendung erneut implementiert werden, damit die Änderungen wirksam werden. Also wechselte ich zum JBoss Logger-Subsystem. Die unten ist Konfiguration, die ich auf die standalone.xml vom tat jboss-cliRichtiger Weg, um das Log in Wildfly zu konfigurieren 8.2

/subsystem=logging/custom-handler=myplatform:add(class=org.apache.log4j.RollingFileAppender, module=org.jboss.log4j.logmanager, formatter="%d{.yyyy-MM-dd} %-5p [%c] (%t) %s%E%n", properties={MaxFileSize=1024000,maxBackupIndex=20,file="${jboss.server.log.dir}/myplatform-debug.log"}) 

so fügte es die folgende Konfiguration in standalone.xml

  <custom-handler name="example" class="org.apache.log4j.RollingFileAppender" module="org.jboss.log4j.logmanager"> 
       <formatter> 
        <pattern-formatter pattern="%d{.yyyy-MM-dd} %-5p [%c] (%t) %s%E%n"/> 
       </formatter> 
       <properties> 
        <property name="MaxFileSize" value="1024000"/> 
        <property name="maxBackupIndex" value="20"/> 
        <property name="file" value="${jboss.server.log.dir}/ott-platform-log.log"/> 
       </properties> 
      </custom-handler> 

Und dann ein Logger für dieses All

<logger category="com.mycompany.project.module1"> 
    <level name="DEBUG"/> 
    <handlers> 
     <handler name="myplatform"/> 
    </handlers> 
</logger> 

funktioniert gut , aber alle meine Anwendungsprotokolle werden auch im Serverprotokoll protokolliert. Und im Konsolenprotokoll auch. Ich will das nicht, schließlich habe ich den Logger separat für mein Projekt konfiguriert! Wie stoppe ich das Serverprotokoll, dass meine Protokolle sich in der Datei server.log anmelden? Oder gibt es eine Möglichkeit, einen Appender dafür zu verwenden? Wenn das so ist, wie?

Antwort

20

Von der "sauberen" standalone.xml ich folgendes:

  1. einen Handler zur Konsole hinzufügen:
<profile> 
    <subsystem xmlns="urn:jboss:domain:logging:2.0"> 
     ... 
     <console-handler name="CONSOLE_HANDLER"> 
      <level name="DEBUG"/> 
      <formatter> 
       <named-formatter name="ECLIPSE_PATTERN"/> 
      </formatter> 
     </console-handler> 
     ... 
  1. Wenn Sie ein Protokolldatei:
<profile> 
    <subsystem xmlns="urn:jboss:domain:logging:2.0"> 
     ... 
     <periodic-rotating-file-handler name="MI_PROJECT_FILE_HANDLER" autoflush="true"> 
      <formatter> 
       <named-formatter name="ECLIPSE_PATTERN"/> 
      </formatter> 
      <file relative-to="jboss.server.log.dir" path="myProject.log"/> 
      <suffix value=".yyyy-MM-dd"/> 
      <append value="true"/> 
     </periodic-rotating-file-handler> 
     ... 
  1. Der Logger (gleiches Niveau wie 1 und 2) Mitteilung des use-parent-handlers
<logger category="com.company.project" use-parent-handlers="false"> 
    <level name="DEBUG"/> 
    <handlers> 
     <handler name="MI_PROJECT_FILE_HANDLER"/> 
     <handler name="CONSOLE_HANDLER"/> 
    </handlers> 
</logger> 
  1. Ich habe ein benutzerdefiniertes Muster (gleiche Ebene) verwendet:
<formatter name="ECLIPSE_PATTERN"> 
    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
</formatter> 
  1. Halten Sie sicher, dass dies:
<root-logger> 
    <level name="INFO"/> 
    <handlers> 
     <handler name="CONSOLE"/> 
     <handler name="FILE"/> 
    </handlers> 
</root-logger> 
+3

Nachdem ich mit verschiedenen Konfigurationen experimentiert habe, finde ich, dass das Attribut use-parent-handlers = "false" ausreicht, um die Anmeldung in der Datei server.log zu deaktivieren. –

+0

Upvoted. halte diese Zeile in Fettschrift ... aber behalte den Rest der Konfiguration, wenn jemand es hilfreich findet :) – Manu

+2

Das ist richtig, alles was benötigt wird ist 'use-parent-handlers = false' um das zu tun was du versuchst zu tun . Ich würde auch vorschlagen, das XML nicht manuell zu aktualisieren, sondern mithilfe von CLI oder der Webkonsole Protokollierungsänderungen vorzunehmen, wie sie zur Laufzeit ohne Herunterfahren des Servers oder ohne Neustart des Servers durchgeführt werden können. –

Verwandte Themen