Предполагая, что вы заранее знаете имя файла журнала, вы можете разрешить приложению продолжать запись в том виде, в каком оно есть (то есть в файл), и символическую ссылку на этот файл на /dev/stdout
или /dev/stderr
This это довольно распространенное решение, например nginx делает это
# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
РЕДАКТИРОВАТЬ: Обратите внимание, что это будет работать, только если приложения, которые ведут журналирование, работает как PID 0. Если вы разветвили процесс или аналогичный, вам придется явно записать в дескриптор файла stdout / stderr PID 1 (доступно в /proc/1/fd
# forward request and error logs to docker log collector
RUN ln -sf /proc/1/fd/1 /var/log/nginx/access.log \
&& ln -sf /proc/1/fd/2 /var/log/nginx/error.log
(см. этот ответ для более подробной информации)