2012-03-28 53 views
2

我使用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="10M"/> 
      <max-backup-index value="10"/> 
      <append value="true"/> 
     </size-rotating-file-handler> 
     <logger category="ace2" use-parent-handlers="false"> 
      <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> 

我想的ACE日誌寫入到不同文件夾,所以我試圖把不同的值放在相對屬性中,但似乎沒有任何工作,關於如何做到這一點的任何想法?

回答

0

找到了答案:)

我使用的Java服務包裝安裝JBoss作爲Windows服務,而該服務擁有位於某個路徑配置文件,所以我注意到,如果我刪除相對屬性,它會將日誌寫入配置文件所在的文件夾。

所有我不得不這樣做定義它是這樣的:

<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 path="../Log/ACEII.log"/>** 
      <rotate-size value="10M"/> 
      <max-backup-index value="10"/> 
      <append value="true"/> 
     </size-rotating-file-handler> 

這奏效了我。

+1

這就是你所問的。此外,您看到的行爲不能保證。 「../」可以到配置目錄以外的其他地方。 – 2012-04-01 21:37:25

6

您需要離開relative-to並在path屬性中輸入絕對路徑。

<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 path="/var/log/myLogDir/ACEII.log"/> 
     <rotate-size value="10M"/> 
     <max-backup-index value="10"/> 
     <append value="true"/> 
    </size-rotating-file-handler> 

您還可以通過向您的配置添加路徑來使用您自己的相對路徑。

在CLI中,您將只執行:/path=my.log.dir:add(path="/var/log")

如果你只是想編輯XML添加以下。

<paths> 
    <path name="my.log.dir" path="/var/log"/> 
</paths> 

例如,如果您想要在默認日誌目錄中定義特定目錄,則路徑本身可以具有相對路徑。

定義完路徑後,您可以使用您在relative-to屬性中給出路徑的名稱。

+0

謝謝,但絕對路徑不夠好,你可以想象,我嘗試了它與環境變量,但沒有成功。有沒有辦法像'jboss.server.log.dir'一樣定義我自己的路徑,這樣我就可以設置'相對'到那個路徑?我嘗試使用'wrapper.app.parameter'和'wrapper.java.additional'來定義此路徑,但沒有成功(我使用java包裝服務) – Tomer 2012-03-29 08:51:55

+2

請參閱上文。我添加了關於如何做到這一點的說明。 – 2012-03-29 15:21:03

+0

再次感謝,這確實是我需要的一個進步,但同樣,它似乎不允許Env。變量。 – Tomer 2012-04-01 10:32:18

3

這對我來說很好。

domain.sh -Djboss.server.log.dir="my custom logs dir" 
0

這是我用的;然後我處理與logrotate日誌循環:

<file-handler name="FILE" autoflush="true"> 
     <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"/> 
     <append value="true"/>                                
    </file-handler> 

很明顯,你可以修改這個滿足您的需求。

0

知道這是一個老問題,但仍發現相關JBOSS EAP 7

我發現詹姆斯響應從這裏見地 - https://developer.jboss.org/wiki/Wildfly82LogPathChange

我能夠編輯standalone.conf然後指定自定義在那裏記錄目錄。

這也是一個domain.conf,可以編輯域模式。

所有這一切都需要它添加以下到文件的末尾:

#Specify the log dir 
JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=my custom logs dir" 

據我瞭解的Windows .bat文件可以被更新替代。conf文件。

相關問題