2010-08-16 12 views
8

Mam 3 procesy działające pod moim skręconym reaktorem: Orbitowany, WSGI (działający django) i sam Twisted.Twisted logowanie

Obecnie używam

log.startLogging(sys.stdout) 

Kiedy cały dziennika są skierowane w tym samym miejscu, nie ma zbyt wiele powodzi.

Jedna linia mojego dziennika z WSGI jest tak:

2010-08-16 02:21:12-0500 [-] 127.0.0.1 - - [16/Aug/2010:07:21:11 +0000] "GET /statics/js/monitor_rooms.js HTTP/1.1" 304 - "http://localhost:11111/chat/monitor_rooms" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8" 

czas powtarza się dwa razy w zasadzie. Myślę, że powinienem użyć własnego formatera, ale niestety nie mogę go znaleźć w dokumentach skręconych (nie ma tam nic na temat logowania).

  1. Jaki jest najlepszy sposób na rejestrację z 3 źródeł?
  2. Co kwargs mogę przechodzić do której funkcjonować w twisted.log aby założyć własną formatowania (startLogging nie zawiera odpowiedzi)
  3. Co jest lepszym rozwiązaniem niż to, co sugerowali? (Nie mam doświadczenia w konfigurowaniu rejestratorów.)

Odpowiedz

1

Heh. Myślę dokładnie o tym problemie. To, co wymyśliłem, to osobna aplikacja Twisted, która rejestruje wiadomości odbierane przez gniazdo. Możesz skonfigurować logowanie Pythona do wysłania do gniazda i możesz skonfigurować rejestrowanie Twisted w celu wysłania do logowania w języku Python. W ten sposób można uzyskać wszystko, aby wysyłać komunikaty rejestrowania do pojedynczego procesu (który następnie wykorzystuje rejestrowanie w języku Python w celu zalogowania ich na dysk).

mam pewne wstępne dowody istnienia kodu pojęcia na http://www.acooke.org/cute/APythonLog0.html

Najważniejsze brakuje, że byłoby miło, aby wskazać, która nadeszła wiadomość z jakiej źródła. Nie wiem, jak najlepiej to jeszcze dodać (jednym podejściem byłoby uruchomienie usługi na trzech różnych portach i dla każdego z nich inny prefiks).

PS Jak działa orbita? To na mojej liście ...

11

Możesz użyć argumentu kluczowego system do twisted.python.log.msg, aby dostosować wiadomość.

Zakładając, że masz:

wyjście
log.msg("Service ready for eBusiness!", system="enterprise") 

Otrzymasz zalogowaniu tak:

2010-08-16 02:21:12-0500 [enterprise] Service ready for eBusiness! 

Można wtedy każdy z twoich usług dodać system="wsgi/orbited/..." ich log.msg i log.err połączeń.

Znalazłem this kopiąc przez źródło ostatni raz kiedy pracowałem z Twisted.