2013-10-28 50 views
0

的log4j:異常不捆綁在罐子

# Root logger option 
log4j.rootLogger=ERROR, file 

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=${fileName} 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{YYYY-MM-DD HH:mm:ss} %-5p %c{1}:%L - %m%n 

我有這個在我的主要方法,當我跑我的應用程序:PropertyConfigurator.configure("log4j.properties");

問題:

  1. 我保持log4j.properties在項目的根文件,並試圖以我的項目導出爲可運行罐子,當我提取其中的內容,或再次重新導入,我其實沒有看到log4j.properties。 log4j與jar捆綁在一起應該做些什麼?

  2. 我把log4j文件放在src文件夾下。但是當我運行我的應用程序時,我得到了下面的異常。即使在移動log4j文件時,爲了使log4j正常工作,應該更改什麼?

這是例外,我得到:

log4j:ERROR setFile(null,true) call failed. 
java.io.FileNotFoundException: 
    at java.io.FileOutputStream.open(Native Method) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:290) 
    at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:194) 
    at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:164) 

回答

0

log4j.properties最好應該不是jar文件本身的一部分。客戶(或API的使用者)有責任提供一個。

爲了回答你問題的第二部分,嘗試更換$ {}名與路徑,如C:\ mylogs.log

+0

對不起,在應對延遲!我得到它的工作!我們不需要單獨提供log4j,而是可以在我們的課程中編寫log4j來創建Logger和Appender。對於第二部分,我不認爲這是答案。替換$ {filename}與放置log4j的位置無關 – Mercenary