设置 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
,我还想显示 DEBUG
消息 仅来自我的包裹。
我尝试了几件事,但我觉得我只是在尝试从互联网上随机尝试的东西,因为我找不到关于如何获得它的权威参考,而且我很难理解令人难以置信的混乱Java...
的日志设施状态
我问的是 Storm 和 Flink,因为我怀疑我的问题的根源是一样的,但我可能错了。如果我没有提供一个最小的例子,我也很抱歉,但这里真的没有什么可以提供的。
如果您需要更多详细信息,请告诉我。
对于 Storm,您的日志配置在 storm/log4j2/worker.xml
中。它是一个 log4j2 配置文件,因此您可以在此处 https://logging.apache.org/log4j/2.x/manual/configuration.html.
查看 log4j2 文档以了解有哪些选项
我对 Flink 不太熟悉,但我怀疑它很相似。 Here 是 Flink 的页面,其中提到您应该在 conf
目录中有一个 logback.xml
文件。
为了在Flink集群上修改日志级别和类日志,请适配
FLINK_HOME/conf/log4j.properties
如果您使用 log4j
FLINK_HOME/conf/logback.xml
如果您使用 logback
在启动 Flink 集群之前。
部署Flink集群时会读取这些文件。请注意,这些设置无法在运行时更改,除非您将 Flink 的 log4j
记录器替换为支持动态加载设置的 log4j2
。
在这种情况下:
Then I pass the JAR to .../bin/storm
and .../bin/flink
scripts and everything works, but the log level is set to INFO
, I'd like to also display DEBUG
messages from my package only.
我最终得到了以下次优解决方案。
风暴
由于未知原因,更改 /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
所以我正在用 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,因为我怀疑我的问题的根源是一样的,但我可能错了。如果我没有提供一个最小的例子,我也很抱歉,但这里真的没有什么可以提供的。
如果您需要更多详细信息,请告诉我。
对于 Storm,您的日志配置在 storm/log4j2/worker.xml
中。它是一个 log4j2 配置文件,因此您可以在此处 https://logging.apache.org/log4j/2.x/manual/configuration.html.
我对 Flink 不太熟悉,但我怀疑它很相似。 Here 是 Flink 的页面,其中提到您应该在 conf
目录中有一个 logback.xml
文件。
为了在Flink集群上修改日志级别和类日志,请适配
FLINK_HOME/conf/log4j.properties
如果您使用log4j
FLINK_HOME/conf/logback.xml
如果您使用logback
在启动 Flink 集群之前。
部署Flink集群时会读取这些文件。请注意,这些设置无法在运行时更改,除非您将 Flink 的 log4j
记录器替换为支持动态加载设置的 log4j2
。
在这种情况下:
Then I pass the JAR to
.../bin/storm
and.../bin/flink
scripts and everything works, but the log level is set toINFO
, I'd like to also displayDEBUG
messages from my package only.
我最终得到了以下次优解决方案。
风暴
由于未知原因,更改 /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