Twistedベースのクライアントは、ループ内でUDPパケットを送信します。 したがって、DatagramProtocolクラスを使用しています。Twisted:Twisted-frameworkクラスのログを無効にする
#!/usr/bin/python
# -*- coding: utf-8 -*-
from twisted.application.service import Service
from twisted.internet import reactor
from twisted.internet.task import LoopingCall
from twisted.internet.protocol import DatagramProtocol
from twisted.python import log
import logging
class HeartbeatClient(Service):
def __init__(self, host, port, data, beat_period):
self.ip = host
self.port = int(port)
self.data = data
self.beat = int(beat_period)
def startService(self):
self._call = LoopingCall(self._heartbeat)
self._call.start(self.beat)
def stopService(self):
self._call.stop()
def _heartbeat(self):
protocol = DatagramProtocol()
protocol.noisy = False
port = reactor.listenUDP(0, protocol)
port.write(self.data, (self.ip, self.port))
port.stopListening()
今
私はtwistdでこのクライアントを実行すると、私は永久に、すなわちクラスDatagramProtocolから、ツイストのクラスからログメッセージを取得する:これらのログメッセージがあるので
2011-09-11 18:39:25+0200 [-] (Port 55681 Closed)
2011-09-11 18:39:30+0200 [-] twisted.internet.protocol.DatagramProtocol starting on 44903
2011-09-11 18:39:30+0200 [-] (Port 44903 Closed)
2011-09-11 18:39:35+0200 [-] twisted.internet.protocol.DatagramProtocol starting on 50044
2011-09-11 18:39:35+0200 [-] (Port 50044 Closed)
2011-09-11 18:39:40+0200 [-] twisted.internet.protocol.DatagramProtocol starting on 37450
これはソースです自分自身のログを汚染すると、これらのログメッセージを無効にすることができるのだろうかと思います。 私は既にprotocol.noisy = False
を呼び出してログの量を減らしましたが、まだ他のログメッセージを取得しています。また、コマンドg = protocol.ClientFactory().noisy = False
は役に立ちません。
すべてのツイスト内部クラスのロギングを一般的な方法で無効にすることはできますか?おそらく、Twisted-loggingの設定を使用していますか?
関連:http://stackoverflow.com/q/5078980 – jfs
ありがとう。残念ながら、答えはこの問題に対する解決策ではありません。私がプロトコル上のノイズをfalseに設定しても(私の質問に加えて)、私はまだログメッセージを取得します。 – ifischer
ログメッセージは 'twisted.internet.udp.Port'クラスからです。[' ._bindSocket() '](http://twistedmatrix.com/trac/browser/trunk/twisted/internet/udp.py#L99)を参照してください。 )と['.connectionLost()'](http://twistedmatrix.com/trac/browser/trunk/twisted/internet/udp.py#L218)メソッドを使用します。無効にするオプションはありません。 http://twistedmatrix.com/documents/current/core/howto/application.html#auto6 – jfs