Ich führe 3 Prozesse mit Supervisord, einem Nginx, einer NodeJS-API und einem Sidekiq aus. Gibt es überhaupt eine Möglichkeit, die Protokolle zu markieren, damit ich später nur die Protokolle filtern kann, die von der NodeJS-API oder dem Sidekiq usw. stammen?
BEARBEITEN
Ich möchte, dass alle Protokolle in stdout gehen, da ich dies in einem Docker-Container ausführe
Vielen Dank
Das Plugin supervisor-stdout
druckt Unterprozessprotokollnachrichten an stdout, dem der Unterprozessname vorangestellt ist.
Sie können auch Unterprozessprotokollnachrichten an stdout drucken, indem Sie loglevel = debug
in supervisord.conf
festlegen. Dadurch werden jedoch auch viele andere Debug-Informationen gedruckt.
@mnaberez Leider supervisor-stdout
nicht mit dem Supervisor, der über apt-get unter Ubuntu 16.04 installiert wurde. Es wird der Fehler Error: supervisor_stdout:event_handler cannot be resolved within [eventlistener:stdout]
.
Die Alternative (Installation über Pip) ist viel umständlicher. Ich konnte es mit so etwas ausführen:
/path/to/supervisord -c /path/to/supervisord.conf
läuft richtig:
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
Dem Subprozessnamen wird jedoch kein Präfix vorangestellt. Wenn ich benutze
[supervisord]
nodaemon = true
In meiner Konfigurationsdatei wird das Präfix in der Ausgabe angezeigt, aber nicht in die Protokolldateien geschrieben.
Ich verwende ein ziemlich Standard-Setup (ein paar Tornado-Prozesse und Supervisor_stdout) mit:
[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
Gibt es ein Update zu diesem Problem oder eine alternative Lösung?
Ich frage mich das gleiche wie
Auch hier nach einer Lösung suchen.
Hilfreichster Kommentar
Ich frage mich das gleiche wie