繁体   English   中英

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

[英]Set Apache Storm and Flink log level to display debug messages

所以我正在构建一个带有 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 ,我还想仅显示来自我的 package 的DEBUG消息。

我尝试了几件事,但我觉得我只是在尝试从互联网上随机做的事情,因为我找不到关于如何获得这个的权威参考资料,而且我很难理解日志设施令人难以置信的令人困惑的 state对于 Java...

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

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

对于 Storm,您的日志配置位于storm/log4j2/worker.xml中。 这是一个 log4j2 配置文件,因此您可以通过查看此处的 log4j2 文档了解有哪些选项https://logging.apache.org/log4j/2.x/manual/configuration.ZFC336EZ888888

我对 Flink 不太熟悉,但我怀疑它是相似的。 是 Flink 的页面,上面提到你的conf目录中应该有一个logback.xml文件。

为了修改日志级别以及哪些类在 Flink 集群上登录,请适应

  • FLINK_HOME/conf/log4j.properties如果您使用的是log4j
  • FLINK_HOME/conf/logback.xml如果您使用的是logback

在启动 Flink 集群之前。

部署 Flink 集群时会读取这些文件。 请注意,这些设置不能在运行时更改,除非您将 Flink 的log4j记录器替换为支持动态加载设置的log4j2

在这种情况下:

然后我将 JAR 传递给.../bin/storm.../bin/flink脚本,一切正常,但日志级别设置为INFO ,我还想仅显示来自我的 package 的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM