Я запускаю 3 процесса с использованием supervisord, nginx, nodejs api и sidekiq, есть ли способ пометить журналы, чтобы позже я мог фильтровать только журналы, поступающие из nodejs api или sidekiq и так далее?
РЕДАКТИРОВАТЬ
Я хочу, чтобы все журналы входили в стандартный вывод, потому что я запускаю это внутри контейнера докеров
Спасибо
Плагин supervisor-stdout
будет печатать сообщения журнала подпроцесса на стандартный вывод с префиксом имени подпроцесса.
Вы также можете распечатать сообщения журнала подпроцесса на стандартный вывод, установив loglevel = debug
в supervisord.conf
, но это также распечатает много другой отладочной информации.
@mnaberez К сожалению, supervisor-stdout
не работает с супервизором, установленным через apt-get в Ubuntu 16.04. Выдает ошибку Error: supervisor_stdout:event_handler cannot be resolved within [eventlistener:stdout]
.
Альтернатива (установка через pip) намного более громоздкая. Мне удалось запустить его примерно так:
/path/to/supervisord -c /path/to/supervisord.conf
работает правильно:
stdout RUNNING pid 1294, uptime 0:03:16
tornado-8000 RUNNING pid 1295, uptime 0:03:16
tornado-8001 RUNNING pid 1296, uptime 0:03:16
но он не префикс имени подпроцесса. Если я использую
[supervisord]
nodaemon = true
в моем файле конфигурации префикс отображается на выходе, но не записывается в файлы журнала.
Я использую довольно стандартную настройку (пара процессов торнадо и supervisor_stdout) с:
[program:tornado-8000]
command = /path/to/python myfile.py
stdout_events_enabled = true
stderr_events_enabled = true
...
[eventlistener:stdout]
command = /path/to/supervisor_stdout
buffer_size = 100
events = PROCESS_LOG
result_handler = supervisor_stdout:event_handler
Есть ли обновления по этой проблеме или альтернативное решение?
Интересно то же, что и @ katsar0v . Любое альтернативное решение?
Ищу решение и для этого.
Самый полезный комментарий
Интересно то же, что и @ katsar0v . Любое альтернативное решение?