Supervisor: Markieren von Protokollen aus verschiedenen Prozessen

Erstellt am 13. Apr. 2016  ·  5Kommentare  ·  Quelle: Supervisor/supervisor

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

logging question

Hilfreichster Kommentar

Ich frage mich das gleiche wie

Alle 5 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen