2015-05-27 33 views
9

Mam zamieszanie podczas konfigurowania logu Wildfly-8.2.0. Początkowo korzystałem z własnego systemu logowania, z log4j.xml wbudowanym w plik WAR, wszystko działało bardzo dobrze. Ale kiedy wprowadzę jakiekolwiek zmiany w konfiguracji dziennika, muszę ponownie wdrożyć aplikację, aby wprowadzić zmiany. Więc przełączyłem się na system podrzędny JBoss. Poniżej jest konfiguracja zrobiłem do standalone.xml z jboss-cliWłaściwy sposób konfiguracji logu Wildfly 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"}) 

więc dodał poniżej konfiguracji w 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> 

A potem rejestrator do tego

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

wszystko działa dobrze , ale wszystkie moje dzienniki aplikacji są również logowane do logu serwera. Oraz w dzienniku konsoli. Nie chcę tego mieć, po tym wszystkim, że skonfigurowałem rejestrator oddzielnie dla mojego projektu! Jak zatrzymać rejestrowanie przez serwer moich logów logujących się do serwera server.log? Czy istnieje sposób, aby użyć do tego celu appendera? Jeśli tak to jak?

Odpowiedz

20

Z "czysty" standalone.xml I wykonaj następujące czynności:

  1. Dodawanie obsługi do konsoli:
<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. Jeśli życzyć plik dziennika:
<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. Rejestrator (taki sam poziom jak 1 i 2) powiadomienia 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> 
    the
  1. wcześniej używanych własny wzór (ten sam poziom):
<formatter name="ECLIPSE_PATTERN"> 
    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
</formatter> 
  1. Należy upewnić się następująco:
<root-logger> 
    <level name="INFO"/> 
    <handlers> 
     <handler name="CONSOLE"/> 
     <handler name="FILE"/> 
    </handlers> 
</root-logger> 
+3

Po eksperymentowaniu z różnymi konfiguracjami opartymi na twoim podejściu, znajduję atrybut, use-parent-handlers = "false", to wszystko, co jest potrzebne, aby wyłączyć logowanie do serwera server.log. –

+0

Rewizja. utrzymywanie tej linii pogrubioną ... ale zachowywanie całej pozostałej konfiguracji, jeśli ktoś ją znajdzie :) – Manu

+2

To prawda, wszystko, czego potrzeba to 'use-parent-handlers = false', aby zrobić to, co próbujesz zrobić . Proponuję również ręczne aktualizowanie pliku XML, ale przy użyciu interfejsu CLI lub konsoli internetowej, aby wprowadzić zmiany w dzienniku, ponieważ można to zrobić w środowisku wykonawczym bez wyłączania serwera lub bez konieczności ponownego uruchamiania serwera. –