@Boris19

Как правильно организовать логирование в мультипроцессорных скриптах?

Как наиболее правильно делать логирование в скриптах, которые работают в несколько процессов (не потоках). Хотелось бы логировать в один файл, а не каждый процесс в свой файл. В интернете нашел только через создание очереди, в которую каждый процесс кладет строку, после чего цикл в главном процессе достает строки и пишет в файл. Может быть есть еще какие то подходы? И странно, что в стандартной библиотеки logging нет уже готовой реализации чего-то подобного.

Главное условие, работоспособность под Виндой, поэтому библиотека multiprocessing-logging не подходит.

Зачем логировать обязательно в один файл? Нужно, потому что логи потом читает анализатор, который может работать только с одним файлом и нет возможность это исправить.
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
rSedoy
@rSedoy
Python/Django
я использовал этот https://pypi.org/project/concurrent-log-handler/ у меня была проблема с Rotating, когда стандартный создавал несколько файлов при ротации в многопроцессорной django, т.е. стандартный умеет в один файл, но есть вот такие проблемы
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@pfg21
ex-турист
поставить/наколхозить аналог syslog для винды.
чтоб слушало ип:порт или сокет и складировало все принятое в файл.
Ответ написан
Zarom
@Zarom
Мастер на все руки из жопы
Ещё вариант: писать в разные файлы, затем аггрегировать все с помощью Logstash или вовсе ELK.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы