Estou executando 3 processos usando supervisord, um nginx, um nodejs api e um sidekiq, há alguma maneira de marcar os logs para que mais tarde eu possa filtrar apenas os logs vindos da api nodejs ou do sidekiq e assim por diante?
EDITAR
Quero que todos os logs entrem em stdout porque estou executando isso dentro de um contêiner do docker
Obrigado
O plugin supervisor-stdout
imprimirá mensagens de log do subprocesso no stdout prefixado com o nome do subprocesso.
Você também pode imprimir mensagens de log de subprocesso em stdout definindo loglevel = debug
em supervisord.conf
, mas isso também imprimirá muitas outras informações de depuração.
@mnaberez Infelizmente, supervisor-stdout
não está funcionando com o supervisor instalado via apt-get no Ubuntu 16.04. Ele lança o erro Error: supervisor_stdout:event_handler cannot be resolved within [eventlistener:stdout]
.
A alternativa (instalar via pip) é muito mais complicada. Consegui executá-lo com algo assim:
/path/to/supervisord -c /path/to/supervisord.conf
funcionando corretamente:
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
mas não prefixa o nome do subprocesso. Se eu usar
[supervisord]
nodaemon = true
em meu arquivo de configuração, recebo o prefixo exibido na saída, mas não escrito nos arquivos de log.
Estou usando uma configuração bastante padrão (alguns processos tornado e supervisor_stdout) com:
[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
Existe uma atualização sobre este problema ou solução alternativa?
Querendo saber o mesmo que @ katsar0v . Alguma solução alternativa para isso?
Procurando uma solução para isso também.
Comentários muito úteis
Querendo saber o mesmo que @ katsar0v . Alguma solução alternativa para isso?