【发布时间】:2018-12-04 13:46:27
【问题描述】:
当使用 Direct Runner 在本地运行 Apache Beam 管道时,日志级别似乎设置为 DEBUG。
有没有办法将日志设置为INFO?
注意:--workerLogLevelOverrides 在使用 Cloud Dataflow Runner 时可以使用,但似乎不适用于 Direct Runner
【问题讨论】:
标签: google-cloud-dataflow apache-beam
当使用 Direct Runner 在本地运行 Apache Beam 管道时,日志级别似乎设置为 DEBUG。
有没有办法将日志设置为INFO?
注意:--workerLogLevelOverrides 在使用 Cloud Dataflow Runner 时可以使用,但似乎不适用于 Direct Runner
【问题讨论】:
标签: google-cloud-dataflow apache-beam
看来,根据标准配置,日志记录是通过 slf4j 使用 JUL(java.util.logging) 后端完成的。您可以在 pom.xml 中检查 slf4j-api,它对应于 slf4j 和 slf4j-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 日志输出中涉及的所有组件。
【讨论】: