有没有办法告诉扭曲不记录所有工厂和协议的启动和停止。 我使用许多类型的协议并执行大量连接...我的日志文件增长了很多。 所以我正在寻找一种简单的方法来禁用这些消息。
此致
答案 0 :(得分: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.
答案 1 :(得分:0)
作为更系统化的解决方案,您可以尝试以下方法:
from twisted.internet.protocol import Factory
Factory.noisy = False
答案 2 :(得分:0)
其他答案很棒,但您也可以仅在日志记录级别执行此操作:
import logging
logging.getLogger('twisted').setLevel(logging.CRITICAL)