Twisted Logging

8

Ich habe 3 Prozesse unter meinem verdrehten Reaktor laufen: Orbited, WSGI (running django) und Twisted selbst.

Ich verwende derzeit

%Vor%

Wenn alle Logs auf den gleichen Ort gerichtet sind, gibt es zu viele Überschwemmungen.

Eine Zeile meines Protokolls von WSGI ist wie folgt:

%Vor%

Die Zeit wird zweimal grundsätzlich wiederholt. Ich denke, ich sollte meinen eigenen Formatierer verwenden, aber leider kann ich ihn nicht in den Dokumenten von twisted finden (es gibt nichts, was man sich dort anmeldet).

  1. Was ist der beste Weg, um mit der Protokollierung von 3 Quellen umzugehen?
  2. Welche Kwargs gebe ich an welche Funktion in twisted.log um meinen eigenen Formatierer einzurichten (startLogging enthält nicht die Antwort)
  3. Was ist eine bessere Lösung als das, was ich vorgeschlagen habe? (Ich bin nicht wirklich erfahren in der Einrichtung von Loggern.)
confused 16.08.2010, 07:24
quelle

2 Antworten

11

Sie können das Schlüsselwort system auf twisted.python.log.msg verwenden, um die Nachricht anzupassen.

Angenommen, Sie haben:

%Vor%

Sie erhalten eine Protokollierung wie folgt:

%Vor%

Sie könnten dann jeden Ihrer Dienste system="wsgi/orbited/..." zu ihren Aufrufen log.msg und log.err hinzufügen lassen.

Ich fand diese Suche durch die Quelle, als ich das letzte Mal mit Twisted gearbeitet habe.

    
stderr 02.05.2011 20:07
quelle
1

Heh. Ich denke genau über dieses Problem nach. Was ich entwickelt habe, ist eine separate Twisted-App, die Nachrichten protokolliert, die sie über einen Socket empfängt. Sie können die Python-Protokollierung so konfigurieren, dass sie an einen Socket sendet, und Sie können die Protokollierung von Twisted so konfigurieren, dass sie an die Python-Protokollierung gesendet wird. Sie können also alles bekommen, um Logging-Nachrichten an einen einzigen Prozess zu senden (der dann die Protokollierung von Python verwendet, um sie auf die Festplatte zu schreiben).

Ich habe einen ersten Beweis für den Konzeptcode in Ссылка

Die Hauptsache ist, dass es nett wäre, anzugeben, welche Nachricht von welcher Quelle kam. Ich bin mir nicht sicher, wie ich das noch hinzufügen könnte (ein Ansatz wäre, den Dienst auf drei verschiedenen Ports auszuführen und für jedes ein anderes Präfix zu haben).

PS Wie funktioniert der Orbited? Das ist auf meiner Liste als nächstes ...

    
andrew cooke 23.08.2010 01:28
quelle

Tags und Links