我的应用程序中有XML-RPC方法生成大量这样的Twisted日志消息,这些消息依次通过Python的logging
模块记录:
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
或完全禁止它们。这支持了吗?
编辑:这些是服务器端日志消息,在我调用twisted.web.xmlrpc.XMLRPC
个对象的方法时会被记录。这些对象在putChild
和twisted.web.server.Site
对象下面的层次结构中使用(如在twisted.web.vhost.NameVirtualHost
中),我使用默认的SelectReactor
。我想这些类或请求对象中的任何一个都可能是实际记录它们的那个。
答案 0 :(得分:4)
twisted.web.xmlrpc.Proxy
使用工厂设置其HTTP连接(以通常的方式)。工厂的noisy
属性Twisted提供控制它们是否记录开始和停止消息。您可以像这样更改noisy
工厂的Proxy
属性:
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()
当noisy
设置为True
时,与程序输出进行比较。
对于XML-RPC服务器,日志消息来自托管XML-RPC资源的twisted.web.server.Site
。 Site
初始值设定项接受logPath
参数;如果传入此参数的路径,则请求日志将写入该路径而不是主日志。您还可以覆盖发出这些日志消息的Site.log
方法,省略您要省略的方法,或者不做任何事情来完全禁用请求日志。