使用 Direct Runner 在本地运行 Apache Beam 管道时日志级别似乎设置为 DEBUG
.
有没有办法设置日志说INFO
反而?
注:--workerLogLevelOverrides
可以在使用 Cloud Dataflow Runner 时使用,但似乎不适用于 Direct Runner
最佳答案
似乎按照标准配置,日志记录是通过 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 日志输出中涉及的所有组件正确设置了级别。
关于google-cloud-dataflow - 如何为在 Direct Runner 上运行的 apache 光束管道设置日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53614351/