[英]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.