2016-02-13 78 views
0

我剛剛從log4j轉換到log4j2,使用xml配置文件。除了我似乎無法使用屬性文件設置我的日誌文件的路徑之外,一切正常。log4j2 - 從屬性問題設置文件路徑

這是一個Spring MVC應用程序,我有一個filedirs.properties文件位於src/main/resources文件夾以及log4j2.xml,i18n消息和其他屬性文件。它有一個簡單的條目:logs=G:/web/logs/。「我查看了其他帖子,只是沒有得到如何正確配置log4j2。下面是我有:

<Configuration> 
<Properties> 
    <Property name="filename">${bundle:net.myapp.filedirs:logs}standard.log</Property> 
</Properties> 
<File name="stdLog" fileName="${filename}" ignoreExceptions="false"> 
    <PatternLayout pattern="%d{DEFAULT} %-5p: %c - %m%n"/> 
</File> 
...rest of config... 

的錯誤是這樣的:

ERROR FileManager (${bundle:net.myapp.filedir:logs}standard.log) java.io.FileNotFoundException: 

代入實際路徑的作品,例如,

<Property name="filename">g:/web/logs/standard.log</Property>

我掛了bundle語法的正確域部分 - myapp.net不是實際的網站,但它足夠相似。我已經嘗試了幾十個變體,但在調試模式下,java.util.ResourceBundle在通過log4j2初始化時從未找到filedirs屬性文件。手冊樣本是com.domain.messages,所以我難住爲什麼net.myapp.filedirs不起作用。

+0

我建議在log4j2問題跟蹤器上提出這個問題 –

+0

@Remko Popma,你是說這應該像我描述的那樣工作嗎?我對Java和Spring還比較陌生,所以我想我犯了一個新手的錯誤或者誤解了它應該如何工作...... – LWK69

+0

他們會很樂意幫助你。 –

回答

0

正如我在我的評論中指出的那樣,它確實有效,但手冊可能不正確。這裏描述的Property Substitution代替com.domain.messages,簡而言之,工作簡單的是messages,例如<Property name="filename">${bundle:filedir:logs}standard.log</Property>。加上status=debug<Configuration>終於幫我弄明白了。

我不知道這是否有任何區別,但我正在通過STS(localhost)在我的PC上進行測試 - 文檔可能適用於生產網站嗎?不知道,因爲我還沒有生產部署,但是當我啓動並運行時,我會檢查它。