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