2015-05-27 32 views
9

Günlüğü Wildfly-8.2.0'da ayarlama konusunda kafa karışıklığım var. Başlangıçta, kendi logging sistemimi kullanmıştım, log4j.xml ile WAR dosyasında yerleşik, hepsi çok iyi çalıştı. Ancak, günlük yapılandırmasında herhangi bir değişiklik yaptığımda, değişiklikleri yeniden yapmak için uygulamayı yeniden konuşlandırmam gerekiyor. Böylece JBoss logger alt sistemine geçtim. Ben jboss-cliGünlüğü Wildfly'de yapılandırmanın doğru yolu 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"}) 

den standalone.xml yaptığını altındadır yapılandırma yüzden 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şağıda yapılandırmayı ilave Ve sonra bu

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

Hepsi bir logger iyi çalışıyor ancak tüm uygulama günlüklerim de sunucu günlüğüne kaydedilir. Ve konsol günlüğünde de. Bunun olmasını istemiyorum, sonuçta logger'ı projem için ayrı ayrı yapılandırdım! Sunucumun günlüğümün server.log dosyasına girişini nasıl durdurabilirim? Veya bunun için bir ekleyiciyi kullanmanın bir yolu var mı? Öyleyse nasıl? standalone.xml "temiz" Dan

cevap

20

Ben aşağıdakileri yapın:

  1. konsola bir işleyici ekleyin:
<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. İsterseniz bir log dosyası:
<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. logger (aynı seviye 1 ve 2 gibi) ihbar 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. Özel bir desen (aynı seviyede) kullandım:
<formatter name="ECLIPSE_PATTERN"> 
    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
</formatter> 
  • emin tutun
      bu:
    <root-logger> 
        <level name="INFO"/> 
        <handlers> 
         <handler name="CONSOLE"/> 
         <handler name="FILE"/> 
        </handlers> 
    </root-logger> 
    
  • +3

    Yaklaşımınıza dayalı olarak çeşitli yapılandırmalar denendikten sonra, özniteliği, kullanım-parent-handlers = "false" değerini bulup, server.log dosyasında oturum açmayı devre dışı bırakmak için gerekli olan herşeyi buluyorum. –

    +0

    Desteklendi. bu satırı kalın tutuyor ... ama eğer birisi bunu yararlı bulursa konfigürasyonun geri kalanını da devam ettiriyor :) – Manu

    +2

    Bu, gerekli olan her şeyin doğru olduğunu, "yapmaya çalıştığınız şeyi yapmak için" use-parent-handlers = false " . Ayrıca, XML'i manuel olarak güncellememeyi ve sunucu kapatılmadan veya sunucuyu yeniden başlatmaya gerek kalmadan çalışma zamanında yapılabildiklerinden, kayıt değişikliklerini yapmak için CLI veya web konsolunu kullanmanızı da öneririm. –