如何从map/reduce应用程序进行日志记录?

kg7wmglp  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(294)

我想使用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级别进行日志记录,这样我就可以在reducer任务的日志中看到“我的消息”。

lvjbypge

lvjbypge1#

类加载器很可能在您修改的文件之前从hadoopjar中找到log4j.properties文件,因此您的更改不会产生任何影响。您可以通过定义系统变量来指定要使用的log4j配置文件 log4j.configuration ,如下所示:

-Dlog4j.configuration=PATH_TO_FILE

相关问题