2010-08-16 8 views
8

나는 3 개의 프로세스를 내 뒤틀린 리액터 (Orbited, WSGI (django 실행 중), Twisted 자체) 아래에서 실행합니다. 모든 로그를 같은 장소로 이동하면 나는 현재뒤틀린 로깅

log.startLogging(sys.stdout) 

을 사용하고

는 너무 많은 홍수가있다. WSGI에서 내 로그의

한 줄은 다음과 같이이다 :

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" 

시간은 두 번 기본적으로 반복됩니다.

  1. 3 개 소스에서 로그를 처리하는 가장 좋은 방법은 무엇입니까 (아무것도 로깅 없다) 나는 내 자신의 포맷을 사용한다고 생각하지만, 불행히도 나는의 트위스트 문서에서 찾을 수없는 이유는 무엇입니까?
  2. 내 자신의 포맷터를 설정하려면 twisted.log에서 어떤 기능을 사용해야합니까 (startLogging에는 대답이 없습니다)
  3. 내가 제안한 것보다 나은 해결책은 무엇입니까? (저는 로거 설정에 실제로 경험이 없습니다.)

답변

1

Heh. 나는이 문제에 대해 정확히 생각하고있다. 필자가 생각해 낸 것은 소켓을 통해 수신되는 메시지를 기록하는 별도의 Twisted 앱입니다. 소켓으로 보내도록 파이썬 로깅을 설정하고, 파이썬 로깅으로 보내도록 Twisted의 로깅을 설정할 수 있습니다. 따라서 로깅 메시지를 단일 프로세스 (모든 프로세스는 파이썬의 로깅을 사용하여 디스크에 기록)로 보낼 수 있습니다.

나는 중요한 것은 실종이 어떤 소스에서 온 어떤 메시지를 표시하는 것이 좋을 것입니다 http://www.acooke.org/cute/APythonLog0.html

에서 개념 코드의 몇 가지 초기 증거를 가지고있다. 아직 어떻게 추가 할 지 잘 모르겠습니다 (하나의 접근법은 3 개의 다른 포트에서 서비스를 실행하고 각기 다른 접두사를 사용하는 것입니다).

추 신 : 궤도에 오른 운동은 어떻게 진행됩니까? 그게 내 목록에 ...

11

twisted.python.log.msgsystem 키워드 인수를 사용하여 메시지를 사용자 지정할 수 있습니다.

는 당신이있어 가정하면 :

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

로깅거야 출력과 같이 :

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

당신은 다음 각 서비스를 할 수가 log.msglog.err 통화를 system="wsgi/orbited/..."를 추가합니다.

마지막으로 Twisted로 작업 할 때 소스를 통해 this을 파 냈습니다.