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,但我不希望這會影響這種特定的情況。
似乎並沒有工作....我在文本目錄$ {} catalina.base一個日誌文件名,所以不會看起來像屬性的分辨率得到了正在工作的服務?我正在使用一個相對目錄,它將日誌置於正確的部署位置(作爲服務),但在我的開發機器的bin目錄中創建了一個log/pidataboard.log。現在已經足夠好了,但是肯定必須要有一種方法在兩種情況下都能正常工作? –
所以你在log4j.xml裏面試過'$ {catalina.base}'?嗯。我從來沒有使用log4j的XML配置,但我知道這適用於'.properties'文件配置。這顯然[應該工作](http://stackoverflow.com/questions/2810926/how-to-give-dynamic-file-name-in-the-appender-in-log4j-xml)。 –