2015-07-10 82 views
1

我在WindowsENV:CATALINA_BASE在Tomcat的8.0不解析/ log4j的

<Configuration> 
 
    <Appenders> 
 
     <File name="FileLog" fileName="${env:CATALINA_BASE}/logs/pidashboard.log"> 
 
      <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> 
 
     </File> 
 
    </Appenders> 
 
    <Loggers> 
 
     <Root level="debug"> 
 
      <AppenderRef ref="FileLog"/> 
 
     </Root> 
 
    </Loggers> 
 
</Configuration>

在我的機器,文件名解決了Tomcat的8.0相對簡單的log4j的配置和創建日誌適當。在我的部署機器上,如果我將行更改爲CATALINA_BASE解析的硬編碼路徑,則會出現錯誤,指出它無法創建名稱爲 - 字面上的文件 - ${env:CATALINA_BASE}/logs/pidashboard.log,日誌得到正確創建。

這些都是相當的Tomcat的香草裝置,所以我不確定是什麼導致了差異。我的開發機器運行的是Windows 10,而我的生產機器正在運行Windows Server 2008,但我不希望這會影響這種特定的情況。

回答

0

如果您正在使用Tomcat的Windows服務來啓動Tomcat,那麼環境變量CATALINA_BASE不會設置,所以它不會是可用的。嘗試使用系統屬性catalina.base而不是環境變量CATALINA_BASE

+0

似乎並沒有工作....我在文本目錄$ {} catalina.base一個日誌文件名,所以不會看起來像屬性的分辨率得到了正在工作的服務?我正在使用一個相對目錄,它將日誌置於正確的部署位置(作爲服務),但在我的開發機器的bin目錄中創建了一個log/pidataboard.log。現在已經足夠好了,但是肯定必須要有一種方法在兩種情況下都能正常工作? –

+0

所以你在log4j.xml裏面試過'$ {catalina.base}'?嗯。我從來沒有使用log4j的XML配置,但我知道這適用於'.properties'文件配置。這顯然[應該工作](http://stackoverflow.com/questions/2810926/how-to-give-dynamic-file-name-in-the-appender-in-log4j-xml)。 –