Mon client Twisted envoie des paquets UDP dans une boucle. Par conséquent j'utilise la classe DatagramProtocol. Ceci est la source:Twisted: désactive la journalisation des classes 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()
maintenant quand je lance ce client avec twistd, je reçois en permanence les messages du journal des classes Twisted, à savoir de la DatagramProtocol de classe:
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
Puisque ces messages journaux sont polluant mes "propres" journaux, je me demande si je peux désactiver ces messages de journal. Comme vous pouvez le voir, j'ai déjà réduit le nombre de journaux en appelant protocol.noisy = False
, mais je reçois toujours d'autres messages de journal. Aussi la commande g = protocol.ClientFactory().noisy = False
n'aide pas.
Est-il possible de désactiver la journalisation de toutes les classes internes Twisted, de manière générique - pour TOUS les modules? Peut-être en utilisant une configuration Twisted-logging?
connexes: http://stackoverflow.com/q/5078980 – jfs
Merci. Malheureusement, la réponse n'est pas la solution à ce problème. Même lorsque je mets bruyant sur le protocole à faux (voir mon ajout à la question), je reçois toujours des messages de journal. – ifischer
Les messages du journal proviennent de la classe 'twisted.internet.udp.Port', voir [' ._bindSocket() '] (http://twistedmatrix.com/trac/browser/trunk/twisted/internet/udp.py#L99) et ['.connectionLost()'] (http://twistedmatrix.com/trac/browser/trunk/twisted/internet/udp.py#L218) méthodes. Il ne fournit aucune option pour le désactiver. http://twistedmatrix.com/documents/current/core/howto/application.html#auto6 – jfs