Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging Crunch调试日志_Logging_Apache Crunch - Fatal编程技术网

Logging Crunch调试日志

Logging Crunch调试日志,logging,apache-crunch,Logging,Apache Crunch,任何使用过Crunch管道的人都知道,在调用pipeline.run()或pipeline.done()方法之前,实际上不会执行任何操作。传统上,在大多数语言中,我们可以使用日志语句打印出中间变量值,但使用Crunch,由于管道行为,这是不可能的。有没有办法解决这个问题 谢谢。您可以在执行管道期间记录的DoFn、MapFn、FilterFn函数中添加debug和log语句。我通过获取logger并在我的DoFn中使用它来完成这项工作 import org.apache.log4j.Logger;

任何使用过Crunch管道的人都知道,在调用
pipeline.run()
pipeline.done()
方法之前,实际上不会执行任何操作。传统上,在大多数语言中,我们可以使用日志语句打印出中间变量值,但使用Crunch,由于管道行为,这是不可能的。有没有办法解决这个问题


谢谢。

您可以在执行管道期间记录的DoFn、MapFn、FilterFn函数中添加debug和log语句。

我通过获取
logger
并在我的DoFn中使用它来完成这项工作

import org.apache.log4j.Logger;
...

public static class MyDoFn extends DoFn<Integer, String> {
    private static final Logger logger = Logger.getLogger(MyDoFn.class);
    ...

    @Override
    public void process(Integer input, Emitter<String> emitter) {
        ...
        logger.info("hello");
    }
}
import org.apache.log4j.Logger;
...
公共静态类MyDoFn扩展了DoFn{
私有静态最终记录器=Logger.getLogger(MyDoFn.class);
...
@凌驾
公共void进程(整数输入、发射器){
...
logger.info(“你好”);
}
}