@Boris19

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
L3 Technologies Москва
от 80 000 до 150 000 руб.
от 150 000 до 250 000 руб.
YLab Тольятти
от 90 000 до 150 000 руб.