Remaniement du logging des messages de l'application : une seule info par console...
[minwii.git] / src / app / log.py
index 457866b..c1e3286 100755 (executable)
@@ -10,13 +10,51 @@ from events import TIMEOUT, COLOVER, eventNames
 from event_pprinters import pprinters
 import sys
 import pygame
 from event_pprinters import pprinters
 import sys
 import pygame
-from logging import basicConfig, getLogger, DEBUG
-
-basicConfig(level=DEBUG, stream = sys.stdout)
-console = getLogger('minwii')
-eventLog = getLogger('minwii.events')
+import logging
 
 hiddenEvents = {pygame.MOUSEMOTION:True,
 
 hiddenEvents = {pygame.MOUSEMOTION:True,
+                pygame.MOUSEBUTTONDOWN:True,
+                pygame.MOUSEBUTTONUP:True,
                 TIMEOUT:True,
                 #COLOVER:True,
                 }
                 TIMEOUT:True,
                 #COLOVER:True,
                 }
+
+
+class EventLoggerAdapter(logging.LoggerAdapter) :
+    
+    FORMAT = "EVT %(ticks)-10s %(eventName)-15s %(message)s"
+    
+    def process(self, msg, kwargs) :
+        pp = pprinters.get(msg.type, lambda e: str(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)
+handler = logging.StreamHandler()
+handler.setFormatter(logging.Formatter('APP %(message)s'))
+console.addHandler(handler)
+
+_eventLogger = logging.getLogger('minwii.events')
+_eventLogger.setLevel(logging.INFO)
+_eventHandler = logging.StreamHandler()
+_eventFormatter = logging.Formatter(EventLoggerAdapter.FORMAT)
+_eventHandler.setFormatter(_eventFormatter)
+_eventLogger.addHandler(_eventHandler)
+_eventLogger.addFilter(EventFilter())
+
+eventLogger = EventLoggerAdapter(_eventLogger, {})
+#eventLogger = logging.getLogger('minwii.events')