Supervisor: Marquage des journaux de différents processus

Créé le 13 avr. 2016  ·  5Commentaires  ·  Source: Supervisor/supervisor

J'exécute 3 processus en utilisant Supervisord, un nginx, une api nodejs et un sidekiq, y a-t-il de toute façon pour baliser les journaux afin que plus tard je puisse filtrer uniquement les journaux provenant de l'api nodejs, ou du sidekiq et ainsi de suite?

ÉDITER

Je veux que tous les journaux passent dans stdout car je l'exécute dans un conteneur Docker

Merci

logging question

Commentaire le plus utile

Vous vous demandez la même chose que @ katsar0v . Une solution alternative à cela?

Tous les 5 commentaires

Le plugin supervisor-stdout imprimera les messages du journal de sous-processus sur stdout précédés du nom du sous-processus.

Vous pouvez également imprimer les messages du journal de sous-processus sur stdout en définissant loglevel = debug dans supervisord.conf , mais cela affichera également beaucoup d'autres informations de débogage.

@mnaberez Malheureusement, supervisor-stdout ne fonctionne pas avec le superviseur installé via apt-get sur Ubuntu 16.04. Il renvoie l'erreur Error: supervisor_stdout:event_handler cannot be resolved within [eventlistener:stdout] .

L'alternative (installer via pip) est beaucoup plus lourde. J'ai pu l'exécuter avec quelque chose comme ceci:

/path/to/supervisord -c /path/to/supervisord.conf

fonctionne correctement:

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

mais il ne préfixe pas le nom du sous-processus. Si j'utilise

[supervisord]
nodaemon = true

dans mon fichier de configuration, j'obtiens le préfixe affiché dans la sortie, mais pas écrit dans les fichiers journaux.

J'utilise une configuration assez standard (quelques processus de tornade et supervisor_stdout) avec:

[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-t-il une mise à jour sur ce problème ou une solution alternative?

Vous vous demandez la même chose que @ katsar0v . Une solution alternative à cela?

Vous cherchez également une solution à cela.

Cette page vous a été utile?
0 / 5 - 0 notes