2012-08-07 28 views
1

配置記錄,這是的log4j的升力配置如何使用電梯上碼頭

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM 
     "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> 
<log4j:configuration threshold="trace" xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="CA" class="org.apache.log4j.FileAppender"> 
     <param name="File" value="sample.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="[%d{ISO8601}] %-8r [%t] %-5p %c %x - %m%n"/> 
     </layout> 
    </appender> 
    <root> 
     <level value="trace"/> 
     <appender-ref ref="CA"/> 
    </root> 
</log4j:configuration> 

這是Boot.scala相關部分

Logger.setup = Full(Log4j.withFile(getClass.getResource("/props/default.log4j.xml"))) 

我運行碼頭6.22電梯應用。當我用「碼頭服務啓動」啓動碼頭時, 它在碼頭tmp_dir文件夾中創建日誌文件/var/cache/jetty/tmp/sample.log

如何配置它以在另一箇中創建日誌文件位置?例如碼頭日誌文件夾。

回答

2

由於您只在FileAppender聲明中使用文件名'sample.log',因此Jetty將日誌文件存儲在其工作目錄中。

解決方案是指定絕對路徑,或者可能使用變量。例如:

<param name="File" value="${java.io.tmpdir}/sample.log"/> 

將存儲取決於操作系統的java.io.tmpdir中的sample.log。

花括號內的值是一個系統屬性。您可以在命令行上將任何內容指定爲系統屬性,然後在Log4J文件中對其進行訪問。例如:

java -Dmyloggingdir=/var/tmp/myloggingdir 

然後:

<param name="File" value="${myloggingdir}/sample.log"/> 

如果碼頭日誌目錄是一個系統屬性,那麼你應該能夠訪問它。

+0

在較舊的碼頭安裝中,我發現$ {LOGDIR}已在init.d腳本中設置,但$ {jetty.logs}似乎是一個更好的選擇,它也可以在升級到新版本之後繼續存在。 – dag 2013-07-26 08:48:26