2011-09-08 3 views
4

내가 파이썬의 logging 모듈을 통해 로그인 한 차례에 같은 트위스트 로그 메시지를 많이 생성 내 응용 프로그램에서 XML-RPC 방법이 있습니다꼬인 : 특정 로그 메시지를 어떻게 울리시겠습니까?

2011-09-08 18:00:51.399553 UTC INFO XXX.XXX.XXX.XXX - - [08/Sep/2011:18:00:50 +0000] "POST /RPC2 HTTP/1.0" 200 129 "-" "xmlrpclib.py/1.0.1 (by www.pythonware.com)"

이 로그 메시지는 나에게 필요하지 않습니다 및 레벨을 logging.DEBUG으로 변경하거나 완전히 억제하고 싶습니다. 지원됩니까?

EDIT : 이들은 서버 측 로그 메시지로, twisted.web.xmlrpc.XMLRPC 개체의 메소드를 호출 할 때 기록됩니다. 이 객체는 twisted.web.server.Sitetwisted.web.vhost.NameVirtualHost 객체 아래의 계층 구조 (putChild)로 사용되며 기본값은 SelectReactor입니다. 나는이 클래스들 중 하나 또는 요청 객체가 이들을 실제로 로깅 할 수 있다고 생각한다.

답변

4

twisted.web.xmlrpc.Proxy은 (보통 방식으로) HTTP 연결을 설정하기 위해 팩토리를 사용합니다. Twisted 팩토리의 noisy 속성은 시작 및 중지 메시지를 기록할지 여부를 제어합니다. 이 같은 Proxy의 공장의 noisy 속성을 변경할 수 있습니다 noisyTrue로 설정되어있는 경우

from sys import stdout 

from twisted.web.xmlrpc import Proxy 
from twisted.internet import reactor 
from twisted.python.log import startLogging 

startLogging(stdout) 

p = Proxy('http://localhost:8080/RPC2') 
class QuietQueryFactory(p.queryFactory): 
    noisy = False 

p.queryFactory = QuietQueryFactory 
p.callRemote('echo', 'foo') 

reactor.run() 

이 프로그램의 출력과 비교.

XML-RPC 서버의 경우 로그 메시지는 XML-RPC 리소스를 호스팅하는 twisted.web.server.Site에서 온 것입니다. Site 초기화 프로그램은 logPath 인수를 허용합니다. 이 매개 변수에 대한 경로를 전달하면 요청 로그는 기본 로그가 아닌 해당 경로에 기록됩니다. 또한 이러한 로그 메시지를 내보내는 방법 인 Site.log 메서드를 무시하거나, 생략하려는 메시지 만 생략하거나 요청 로그를 완전히 비활성화하지 않을 수도 있습니다.

+1

내가 침묵시키고 자하는 이러한 로그 메시지가 서버 측에 있음을 지정해야합니다. 사과. +1이 유용하기 때문에 아무튼. 'twisted.web.xmlrpc.XMLRPC' 객체에 대해 설정할 수있는 비슷한 옵션이 있습니까? 나는 10.2 코드를 찾고 아무것도 찾지 못했다. – wberry

+1

이 질문을 좀 더주의 깊게 읽으면 예제 로그 메시지가 클라이언트 측 시작/중지 메시지가 아니라 서버 측 요청 로그 메시지라는 것을 알았을 것입니다. 서버에 대한 답변도 업데이트되었습니다. –

+2

차가움. 부모 클래스'twisted.web.http.HTTPFactory'에'log' 메소드 정의를 찾았습니다. – wberry