Twisted 启动/停止工厂/协议减少噪声日志消息
有没有办法让twistd不记录所有工厂和协议的启动和停止信息?我使用了很多种协议,并且进行很多连接……所以我的日志文件变得非常大。我在寻找一个简单的方法来关闭这些消息。
谢谢
3 个回答
0
其他的回答都很不错,但你也可以仅在日志记录的层面上做到这一点:
import logging
logging.getLogger('twisted').setLevel(logging.CRITICAL)
0
作为一个更全面的解决方案,你可以尝试以下方法:
from twisted.internet.protocol import Factory
Factory.noisy = False
3
你可以把一个工厂的 noisy
属性设置为 False
,这样就可以阻止它记录这些消息了。你也可以查看这个链接 http://twistedmatrix.com/trac/ticket/4021,这个问题可能会在下一个 Twisted 版本中解决。
举个例子,这里有一个包含两个客户端的程序,但只有一个客户端会记录它的开始和停止消息:
import sys
from twisted.internet import reactor, protocol
from twisted.python import log
log.startLogging(sys.stdout)
f = protocol.ClientFactory()
f.protocol = protocol.Protocol
reactor.connectTCP('localhost', 22, f)
g = protocol.ClientFactory()
g.noisy = False
g.protocol = protocol.Protocol
reactor.connectTCP('localhost', 25, g)
reactor.run()
然后输出结果是:
2011-02-22 09:43:23-0500 [-] Log opened.
2011-02-22 09:43:23-0500 [-] Starting factory <twisted.internet.protocol.ClientFactory instance at 0x8f422cc>
^C
2011-02-22 09:43:26-0500 [-] Received SIGINT, shutting down.
2011-02-22 09:43:26-0500 [Protocol,client] Stopping factory <twisted.internet.protocol.ClientFactory instance at 0x8f422cc>
2011-02-22 09:43:26-0500 [-] Main loop terminated.