flink中的自定义log4j属性

qpgpyjmq  于 2021-06-24  发布在  Flink
关注(0)|答案(2)|浏览(978)

如何在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吗?

1cklez4t

1cklez4t1#

不确定是否太晚回应你。在我们的实践中,我们通过重写flink/conf/中现有的log4j-cli.properties文件,然后执行“flink run”。

hs1ihplo

hs1ihplo2#

在运行“flink”客户机之前,只需“export flink\u log\u dir=/path/to/your/log”。

相关问题