如何在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\u env\u java\u 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吗?
2条答案
按热度按时间1cklez4t1#
不确定是否太晚回应你。在我们的实践中,我们通过重写flink/conf/中现有的log4j-cli.properties文件,然后执行“flink run”。
hs1ihplo2#
在运行“flink”客户机之前,只需“export flink\u log\u dir=/path/to/your/log”。