Filtrage des événements au niveau avec l'api de logging python.
authorpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Fri, 16 Apr 2010 14:37:21 +0000 (14:37 +0000)
committerpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Fri, 16 Apr 2010 14:37:21 +0000 (14:37 +0000)
git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@147 fe552daf-6dbe-4428-90eb-1537e0879342

src/app/eventutils.py
src/app/log.py

index 9a7dd18..505455c 100755 (executable)
@@ -29,7 +29,7 @@ $URL$
 import types
 import pygame
 from StringIO import StringIO
-from log import console, eventLogger, hiddenEvents, pprinters
+from log import console, eventLogger
 
 class _EventDispatcher :
     def __init__(self) :
@@ -50,9 +50,8 @@ class _EventDispatcher :
     def dispatchEvents(self) :
         events = pygame.event.get()
         for event in events :
+            eventLogger.info(event)
             listeners = self.registry.get(event.type, {})
-            if not hiddenEvents.has_key(event.type):
-                eventLogger.info(event)
             for listener in listeners.keys() :
                 listener(event)
 
index f270b8d..ca10200 100755 (executable)
@@ -12,19 +12,35 @@ import sys
 import pygame
 import logging
 
+hiddenEvents = {pygame.MOUSEMOTION:True,
+                pygame.MOUSEBUTTONDOWN:True,
+                pygame.MOUSEBUTTONUP:True,
+                TIMEOUT:True,
+                #COLOVER:True,
+                }
+
 
 class EventLoggerAdapter(logging.LoggerAdapter) :
     
-    FORMAT = "%(ticks)-15s %(eventName)s %(message)s"
+    FORMAT = "%(ticks)-10s %(eventName)-15s %(message)s"
     
     def process(self, msg, kwargs) :
         pp = pprinters.get(msg.type, lambda e: '')
         extra = {}
+        extra['eventType'] = msg.type
         extra['eventName'] = eventNames[msg.type]
         extra['ticks'] = pygame.time.get_ticks()
         kwargs['extra']=extra
         return pp(msg), kwargs
 
+class EventFilter :
+    
+    def __init__(self):
+        pass
+    
+    def filter(self, record) :
+        return not hiddenEvents.has_key(record.eventType)
+
 #logging.basicConfig(level=logging.DEBUG, stream = sys.stdout)
 console = logging.getLogger('minwii.console')
 console.setLevel(logging.DEBUG)
@@ -36,10 +52,7 @@ _eventHandler = logging.StreamHandler()
 _eventFormatter = logging.Formatter(EventLoggerAdapter.FORMAT)
 _eventHandler.setFormatter(_eventFormatter)
 _eventLogger.addHandler(_eventHandler)
+_eventLogger.addFilter(EventFilter())
 
 eventLogger = EventLoggerAdapter(_eventLogger, {})
 
-hiddenEvents = {pygame.MOUSEMOTION:True,
-                TIMEOUT:True,
-                #COLOVER:True,
-                }