Ankit Sharma created FLINK-11324: ------------------------------------ Summary: Custom Log4j properties for each flink job Key: FLINK-11324 URL: https://issues.apache.org/jira/browse/FLINK-11324 Project: Flink Issue Type: Improvement Components: Flink on Tez Affects Versions: 1.6.2 Reporter: Ankit Sharma
It would be a good idea if we can have a custom log4j files/location for each job we run via flink. Currently there is no option for that in flink command. I tried providing log4j properties by using below command but it didn't worked for me: flink run /usr/lib/flink/examples/batch/WordCount.jar -Dlog4j.configuration=~/log4j_ABC.properties So, i checked the source code of flink and found that the path of log4j proerpties are hard-coded in flink command script, so did few twik to make it work. It worked for me but i am really not sure about what other components it might affect. Below are the steps/changes done: 1. Add below code in $FLINK_HOME/bin/flink file just after the config.sh being called, this code will add a new environment variable FLINK_LOG_SETTING in which we will be setting the log4j-cli.properties absolute path: if [ -z "$FLINK_LOG_SETTING" ]; then FLINK_LOG_SETTING=$FLINK_CONF_DIR; fi 2. In log_setting variable mentioned in flink, change the -Dlog4j.configuration as below: log_setting=(-Dlog.file="$log" -Dlog4j.configuration=file:"$FLINK_LOG_SETTING"/log4j-cli.properties -Dlogback.configurationFile=file:"$FLINK_CONF_DIR"/logback.xml) 3. save the changes. 4. Now before executing any flink job in cli, export the FLINK_LOG_SETTING to any custom path where you have log4j-cli.properties present for the respective job. $ export FLINK_LOG_SETTING=/home/hadoop/test -- This message was sent by Atlassian JIRA (v7.6.3#76005)