You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by QQ <11...@qq.com.INVALID> on 2022/04/12 10:23:33 UTC

JobManager自定义log4j.properties不生效问题

现在有这样一个场景,我在同一台客户机上提交flink任务时,想要做到不同的任务的JobManager/TaskManager使用不同的log4j配置。于是通过命令行动态参数-Dlog4j.configurationFile=file:/Users/Documents/log4j.properties 设置,结果部署任务后发现配置没有生效,依然使用了FLINK_HOME/conf/log4j.properties。想问一下如何解决这个问题,还是说flink目前不支持通过动态参数方式配置log4j?

Re: JobManager自定义log4j.properties不生效问题

Posted by huweihua <hu...@gmail.com>.
现在是不支持通过动态参数特殊指定 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 <11...@qq.com.INVALID> 写道:
> 
> 现在问题是就是通过动态参数-D设置log4j配置文件不生效!通过查看源码发现底层是从$internal.yarn.log-config-file来指定log4j配置的,而这个参数又不建议外部使用的。
> 
> 
> 
> ---原始邮件---
> 发件人: "huweihua"<huweihua.ckl@gmail.com&gt;
> 发送时间: 2022年4月13日(周三) 晚上8:01
> 收件人: "user-zh"<user-zh@flink.apache.org&gt;;
> 主题: Re: JobManager自定义log4j.properties不生效问题
> 
> 
> Hi,&nbsp;Flink&nbsp;会自动从&nbsp;$FLINK_CONF_DIR&nbsp;中解析&nbsp;log4j.properties&nbsp;文件,因此你可以在提交任务前通过&nbsp;export&nbsp;FLINK_CONF_DIR=xxx&nbsp;来指定&nbsp;flink-conf&nbsp;+&nbsp;log4j.properties.
> 
> 除此之外,我的经验是所有作业使用同一份&nbsp;log4j.properties,但是通过&nbsp;JVM&nbsp;的&nbsp;properties&nbsp;来为不同的作业指定不同配置。
> 
> &gt;&nbsp;2022年4月12日&nbsp;下午6:23,QQ&nbsp;<1139872666@qq.com.INVALID&gt;&nbsp;写道:
> &gt;&nbsp;
> &gt;&nbsp;现在有这样一个场景,我在同一台客户机上提交flink任务时,想要做到不同的任务的JobManager/TaskManager使用不同的log4j配置。于是通过命令行动态参数-Dlog4j.configurationFile=file:/Users/Documents/log4j.properties&nbsp;设置,结果部署任务后发现配置没有生效,依然使用了FLINK_HOME/conf/log4j.properties。想问一下如何解决这个问题,还是说flink目前不支持通过动态参数方式配置log4j?


回复:JobManager自定义log4j.properties不生效问题

Posted by gangzi <11...@qq.com.INVALID>.
现在问题是就是通过动态参数-D设置log4j配置文件不生效!通过查看源码发现底层是从$internal.yarn.log-config-file来指定log4j配置的,而这个参数又不建议外部使用的。



---原始邮件---
发件人: "huweihua"<huweihua.ckl@gmail.com&gt;
发送时间: 2022年4月13日(周三) 晚上8:01
收件人: "user-zh"<user-zh@flink.apache.org&gt;;
主题: Re: JobManager自定义log4j.properties不生效问题


Hi,&nbsp;Flink&nbsp;会自动从&nbsp;$FLINK_CONF_DIR&nbsp;中解析&nbsp;log4j.properties&nbsp;文件,因此你可以在提交任务前通过&nbsp;export&nbsp;FLINK_CONF_DIR=xxx&nbsp;来指定&nbsp;flink-conf&nbsp;+&nbsp;log4j.properties.

除此之外,我的经验是所有作业使用同一份&nbsp;log4j.properties,但是通过&nbsp;JVM&nbsp;的&nbsp;properties&nbsp;来为不同的作业指定不同配置。

&gt;&nbsp;2022年4月12日&nbsp;下午6:23,QQ&nbsp;<1139872666@qq.com.INVALID&gt;&nbsp;写道:
&gt;&nbsp;
&gt;&nbsp;现在有这样一个场景,我在同一台客户机上提交flink任务时,想要做到不同的任务的JobManager/TaskManager使用不同的log4j配置。于是通过命令行动态参数-Dlog4j.configurationFile=file:/Users/Documents/log4j.properties&nbsp;设置,结果部署任务后发现配置没有生效,依然使用了FLINK_HOME/conf/log4j.properties。想问一下如何解决这个问题,还是说flink目前不支持通过动态参数方式配置log4j?

Re: JobManager自定义log4j.properties不生效问题

Posted by huweihua <hu...@gmail.com>.
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 <11...@qq.com.INVALID> 写道:
> 
> 现在有这样一个场景,我在同一台客户机上提交flink任务时,想要做到不同的任务的JobManager/TaskManager使用不同的log4j配置。于是通过命令行动态参数-Dlog4j.configurationFile=file:/Users/Documents/log4j.properties 设置,结果部署任务后发现配置没有生效,依然使用了FLINK_HOME/conf/log4j.properties。想问一下如何解决这个问题,还是说flink目前不支持通过动态参数方式配置log4j?