扭曲的启动/停止工厂/协议减少嘈杂的日志消息

时间:2011-02-22 13:51:04

标签: python twisted

有没有办法告诉扭曲不记录所有工厂和协议的启动和停止。 我使用许多类型的协议并执行大量连接...我的日志文件增长了很多。 所以我正在寻找一种简单的方法来禁用这些消息。

此致

3 个答案:

答案 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)