2016-01-04 47 views
0

我想在我的Java應用程序中使用log4j(沒有web-app)。因此,我直接在my/src文件夾中添加了配置文件。log4j沒有初始化,沒有找到appender

log4j.properties

log4j.rootLogger=DEBUG 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

我的主類是在一個包,一個子命名空間,內有我試圖登錄如下:

final static Logger logger = Logger.getLogger(MainClass.class); 
public static void main(String[] args) { 
    //BasicConfigurator.configure(); 
    logger.warn("some warning"); 
} 

但仍然收到一條錯誤消息,我不知道該怎麼辦。您可以在上面看到註釋行BasicConfigurator。據我所知,應該讀取log4j.properties而不調用該行,對吧?

log4j:WARN記錄器 (at.company.project.poi.MainClass)沒有找到appender。 log4j:WARN請正確初始化 log4j系統。 log4j:WARN有關更多信息,請參閱 http://logging.apache.org/log4j/1.2/faq.html#noconfig

+0

什麼你使用的是哪種構建系統? – Schrieveslaach

+0

沒有特定的構建系統,只是Eclipse中一個普通的簡單Java項目。構建路徑內的依賴關係設置正確。如果我使用上面的那一行,那麼我在控制檯上看到輸出,但是不從配置文件中讀取配置。 – Matthias

+0

屬性文件應放置在根文件夾中,而不是src文件夾中。這可能是你的問題。這個線程可能是你感興趣的:https://stackoverflow.com/questions/7390521/change-location-of-log4j-properties –

回答

0

根據文件,文件應該在類路徑並命名爲 'log4j的的.properties'

您也可以直接在配置設置-Dlog4j.configurationFile="<your config filepath>"

來源設置:https://logging.apache.org/log4j/2.x/manual/configuration.html

+0

項目的根路徑或/ src文件夾內的路徑? – Matthias

+0

必須在執行期間在類路徑中,但看到期望的文件名,你錯過了一個字符;) – Prim

+0

好吧,我的文件名是錯誤的,但錯誤依然存在。即使沒有路徑參數,Log4j是否應該讀取文件?還是我真的需要這個說法? – Matthias