设置 Apache Storm 和 Flink 日志级别以显示调试消息

因此,我正在使用 Storm 和 Flink 应用程序构建一个 JAR,其中记录消息如下:


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;


// ...


private static final Logger LOG = LoggerFactory.getLogger(Some.class);


// ...


LOG.debug("...");

LOG.info("...");

LOG.error("...");

然后我将 JAR 传递给.../bin/storm脚本.../bin/flink,一切正常,但日志级别设置为INFO,我还想仅显示来自我的包的DEBUG消息。


我尝试了几件事,但我觉得我只是从互联网上尝试随机的事情,因为我找不到关于如何获取它的权威参考,而且我很难理解日志设施令人难以置信的混乱状态对于Java...


我询问 Storm 和 Flink,因为我怀疑问题的根源是相同的,但我可能是错的。如果我没有提供一个最小的例子,我也很抱歉,但这里确实没有什么可提供的。


如果您需要更多详细信息,请告诉我。


智慧大石
浏览 117回答 3
3回答

慕仙森

为了修改Flink集群上的日志级别和哪些类日志,请修改FLINK_HOME/conf/log4j.properties如果你正在使用log4jFLINK_HOME/conf/logback.xml如果你正在使用logback在启动 Flink 集群之前。当您部署 Flink 集群时,将会读取这些文件。请注意,这些设置无法在运行时更改,除非您将 Flink 的log4j记录器替换为log4j2支持动态加载设置的记录器。

翻翻过去那场雪

对于 Storm,您的日志配置位于storm/log4j2/worker.xml. 这是一个 log4j2 配置文件,因此您可以通过查看此处的 log4j2 文档来了解有哪些选项:https: //logging.apache.org/log4j/2.x/manual/configuration.html。我对 Flink 不太熟悉,但我怀疑它是相似的。这是 Flink 的页面,其中提到您logback.xml的目录中应该有一个文件conf。

白猪掌柜的

在这种情况下:然后我将 JAR 传递给.../bin/storm脚本.../bin/flink,一切正常,但日志级别设置为INFO,我还想仅显示来自我的包的DEBUG消息。我最终得到了以下次优解决方案。风暴由于未知原因,更改/path/to/storm/log4j2/worker.xml文件没有任何效果,因此我需要以编程方式执行操作:import org.apache.logging.log4j.Level;import org.apache.logging.log4j.core.config.Configurator;// ...Configurator.setLevel("my.package", Level.ALL);大量添加一行就足够了/path/to/flink/conf/log4j.properties:log4j.logger.my.package=ALL
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java