如何设置在Direct Runner上运行的Apache Beam管道的日志级别

时间:2018-12-04 13:46:27

标签: google-cloud-dataflow apache-beam

使用Direct Runner在本地运行Apache Beam管道时,日志级别似乎设置为DEBUG

是否可以将日志设置为改为说INFO

注意:--workerLogLevelOverrides可在使用Cloud Dataflow Runner时使用,但似乎不适用于Direct Runner

1 个答案:

答案 0 :(得分:2)

看来,按照标准配置,使用slf4jJUL)后端通过java.util.logging完成记录。您可以在pom.xml中检入slf4j-api,该后端与slf4jslf4j-jdk14相对应。

您需要在运行时配置JUL。一种方法是将

之类的参数作为参数传递给VM

-Djava.util.logging.config.file=logging.properties

然后,在运行应用程序的目录中创建一个logging.properties。在我的情况下,它是应用程序的根目录(其中包含src目录)。如果它似乎不起作用,则可以在其中指定一个绝对路径作为文件名。

关于配置,这里有一个示例:

handlers=java.util.logging.ConsoleHandler
.level=INFO
java.util.logging.ConsoleHandler.level=ALL
org.apache.beam.sdk.io.gcp.pubsub.PubsubUnboundedSource.level=ALL

这将设置软件包org.apache.beam.sdk.io.gcp.pubsub.PubsubUnboundedSource的级别。根据情况,您可以使用它的配置。确保已将级别正确设置为JUL日志输出中涉及的所有组件。