【发布时间】:2018-09-12 18:50:09
【问题描述】:
我们如何在 flink run 命令中从命令行传递自定义 log4j 属性?我已经解决了 1 和 2 的其他问题,但我仍然无法覆盖我有自定义日志配置的现有 log4j 文件。
我也试过 ./bin/flink run -m yarn-cluster -yn 1 -yD env.java.opts="- Dlog4j.configuration=file:///path/to/log4j.properties" ./examples/batch/WordCount.jar
我看到它被添加到 jobmanager 日志中,但 flink 客户端日志仍然使用 conf/log4j.properties。
我尝试通过在 flink-conf.yaml 文件中添加 env.java.opts 及其工作,但我想从命令行传递自定义 log4j.properties。此外,当从 flink-conf.yaml 传递额外选项时,我检查了该参数是否在 config.sh 脚本中为 $FLINK_ENV_JAVA_OPTS 设置。在这种情况下 ./bin/flink 需要修改才能从自定义日志中读取。像这样的
log=$FLINK_LOG_DIR/flink-$FLINK_IDENT_STRING-client-$HOSTNAME.log
if [ "$FLINK_ENV_JAVA_OPTS" ]; then
log_setting=(-Dlog.file="$log" "$FLINK_ENV_JAVA_OPTS" -
Dlogback.configurationFile=file:"$FLINK_CONF_DIR"/logback.xml)
else
log_setting=(-Dlog.file="$log" -
Dlog4j.configuration=file:"$FLINK_CONF_DIR"/log4j-cli.properties -
Dlogback.configurationFile=file:"$FLINK_CONF_DIR"/logback.xml)
fi
除了上述选项之外,还有其他传递自定义 log4j 的方法吗?
【问题讨论】:
标签: logging log4j apache-flink