2013-10-02 40 views
2

我想使用Hadoop的Log4j基礎設施從我的地圖/縮減應用程序進行日誌記錄。我想我已經設置了一切正確的, 但我仍然無法指定我想要的日誌級別。如何從我的地圖/縮減應用程序登錄?

默認情況下,Hadoop設置爲在日誌級別INFO。其 log4j.properties文件的第一行是這樣的:

hadoop.root.logger=INFO,console 

我有一個應用程序,其減速看起來是這樣的:

package com.test; public class MyReducer<...> extends Reducer<...> { private static Logger logger = Logger.getLogger(MyReducer.class.getName()); 
    //... protected void reduce(...) { 
     logger.debug("My message"); 
    // ... } } 

我已經添加了以下行的Hadoop log4j的。屬性文件:

log4j.logger.com.test.MyReducer=DEBUG 

我希望Hadoop的系統記錄在級別的信息,但我的應用程序登錄的級別DEBUG, 使I S ee「Reduce」任務的日誌中的「我的消息」。

回答

0

類加載器很可能在修改之前從Hadoop jar中找到log4j.properties文件,所以您的更改沒有任何影響。您可以通過定義系統變量log4j.configuration來指定要使用哪個log4j配置文件,如下所示:

-Dlog4j.configuration=PATH_TO_FILE 
相關問題