2012-03-28 14 views
3

我的JBoss 7.1.1,定義如下:JBoss的7記錄器相同的數據寫入到兩個不同的文件

<subsystem xmlns="urn:jboss:domain:logging:1.1"> 
     <console-handler name="CONSOLE"> 
      <level name="INFO"/> 
      <formatter> 
       <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
      </formatter> 
     </console-handler> 
     <periodic-rotating-file-handler name="FILE"> 
      <formatter> 
       <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
      </formatter> 
      <file relative-to="jboss.server.log.dir" path="server.log"/> 
      <suffix value=".yyyy-MM-dd"/> 
      <append value="true"/> 
     </periodic-rotating-file-handler> 
     <size-rotating-file-handler name="ACEII"> 
      <level name="DEBUG"/> 
      <formatter> 
       <pattern-formatter pattern="%z{utc}%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p [%c] %s%E%n"/> 
      </formatter> 
      <file relative-to="jboss.server.log.dir" path="ACEII.log"/> 
      <rotate-size value="100K"/> 
      <max-backup-index value="10"/> 
      <append value="false"/> 
     </size-rotating-file-handler> 
     <logger category="ace2"> 
      <level name="DEBUG"/> 
      <handlers> 
       <handler name="ACEII"/> 
      </handlers> 
     </logger> 
     <logger category="com.arjuna"> 
      <level name="WARN"/> 
     </logger> 
     <logger category="org.apache.tomcat.util.modeler"> 
      <level name="WARN"/> 
     </logger> 
     <logger category="sun.rmi"> 
      <level name="WARN"/> 
     </logger> 
     <logger category="jacorb"> 
      <level name="WARN"/> 
     </logger> 
     <logger category="jacorb.config"> 
      <level name="ERROR"/> 
     </logger> 
     <root-logger> 
      <level name="INFO"/> 
      <handlers> 
       <handler name="CONSOLE"/> 
       <handler name="FILE"/> 
      </handlers> 
     </root-logger> 
    </subsystem> 

如u可以看到我有寫的server.log,另一個處理程序到ACE2.log。問題在於ACE2日誌也寫入server.log,我做錯了什麼?

回答

8

我找到了答案,只需添加使用 - 父處理器=「假」到你的記錄:

<logger category="ace2" use-parent-handlers="false"> 
      <level name="DEBUG"/> 
      <handlers> 
       <handler name="ACEII"/> 
      </handlers> 
     </logger> 
0

寫入server.logFILE處理程序在根記錄器中列出,因此也將從ace2記錄器接收消息。

+0

所以你說的是,這是在根記錄中列出的每個處理器將接收數據從所有其他處理程序? 有沒有辦法預防它? – Tomer 2012-03-28 14:00:29

+0

log4j有一個可以防止這種情況發生的可加性屬性,Jboss7日誌記錄是否有類似的東西? – Tomer 2012-03-28 14:29:11

+0

@ ftom2我不確定JBoss 7的日誌記錄,但你可能會在你的應用程序中使用log4j。根據JBoss 7文檔,您應該能夠將log4j插入到框架中。 – Thomas 2012-03-28 15:46:51

相關問題