Hi,
I am trying to deploy my flink application and get some logs on the web UI.
I am using the latest version of flink (1.14). I am deploying it with
docker.
When I run the application without any custom log4j2 everything works:
- I can see the logs in "Logs" tab on the web UI for both JM and TM
- I can see the logs in "Log List" tab named
"flink--standalonesession-0-jm.log" and "flink--taskexecutor-0-tm.log" for
JM and TM respectively. I can also see those files inside the containers
in /opt/flink/log directory
Now I want to have my custom naming. I have named the log files "flink.log"
for both TM and JM
I have copy/pasted the log4j-console.properties from flink and I have only
changed lines 55-56 from:
*appender.rolling.fileName = ${sys:log.file}*
*appender.rolling.filePattern = ${sys:log.file}.%i*
to
*appender.rolling.fileName = /opt/flink/log/flink.log*
*appender.rolling.filePattern = /opt/flink/log/flink.log.%*i
When I do that:
- I do not see logs in "Logs" tab on the web UI for neither JM nor TM
- I can see logs in "Log List" tab named "flink.log" only for my TM. I
cannot see the the logs for the JM.
If I set "web.log.path: /opt/flink/log/flink.log" for both JM and TM, then
I can see logs for TM under "Log List" tab.
But they do not show in the "Logs" tab for TM and they do not show for the
JM at all. I can find the logs in /opt/flink/log for both TM and JM.
My question is: How can I show the logs in the UI under both "Logs" and
"Log List" tabs when I use a custom name for my log file?
Here is a very simple example to be reproduced:
https://github.com/nikobearrr/flink-logging-webui
To switch between default logging and "custom" logging you need to comment
out the volume part of both services and remove the "web.log.path"
environmental variable.
Regards,
Nikola