我想使用 Hadoop 的 Log4j 基础架构从我的 map/reduce 应用程序中进行日志记录。我想我已经正确设置了所有内容,但我仍然无法指定我想要的日志记录级别。
默认情况下,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.properties 文件中添加了以下行:
log4j.logger.com.test.MyReducer=DEBUG
我希望 Hadoop 系统以 INFO 级别记录,但我的应用程序以 DEBUG 级别记录,以便我在减速器任务的日志中看到“我的消息”。