现在是不支持通过动态参数特殊指定 log4j.properties 的, 有以下几个选项: 1. 提交作业时指定 FLINK_CONF_DIR 环境变量,这种方法需要通知增加 flink-conf.yaml 2. 使用统一的 log4j.properties, 通过动态参数修改 JVM properties 来达到定制化效果 3. 还有一个比较 trick 的办法是用户将 log4j.properties 打包在 user jar 中,使用 child-first 加载顺序
> 2022年4月13日 下午9:31,gangzi <1139872...@qq.com.INVALID> 写道: > > 现在问题是就是通过动态参数-D设置log4j配置文件不生效!通过查看源码发现底层是从$internal.yarn.log-config-file来指定log4j配置的,而这个参数又不建议外部使用的。 > > > > ---原始邮件--- > 发件人: "huweihua"<huweihua....@gmail.com> > 发送时间: 2022年4月13日(周三) 晚上8:01 > 收件人: "user-zh"<user-zh@flink.apache.org>; > 主题: Re: JobManager自定义log4j.properties不生效问题 > > > Hi, Flink 会自动从 $FLINK_CONF_DIR 中解析 log4j.properties 文件,因此你可以在提交任务前通过 export FLINK_CONF_DIR=xxx 来指定 flink-conf + log4j.properties. > > 除此之外,我的经验是所有作业使用同一份 log4j.properties,但是通过 JVM 的 properties 来为不同的作业指定不同配置。 > > > 2022年4月12日 下午6:23,QQ <1139872...@qq.com.INVALID> 写道: > > > > 现在有这样一个场景,我在同一台客户机上提交flink任务时,想要做到不同的任务的JobManager/TaskManager使用不同的log4j配置。于是通过命令行动态参数-Dlog4j.configurationFile=file:/Users/Documents/log4j.properties 设置,结果部署任务后发现配置没有生效,依然使用了FLINK_HOME/conf/log4j.properties。想问一下如何解决这个问题,还是说flink目前不支持通过动态参数方式配置log4j?