le logging commence à avoir une bonne tête.
authorpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Fri, 16 Apr 2010 09:55:06 +0000 (09:55 +0000)
committerpin <pin@fe552daf-6dbe-4428-90eb-1537e0879342>
Fri, 16 Apr 2010 09:55:06 +0000 (09:55 +0000)
git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@143 fe552daf-6dbe-4428-90eb-1537e0879342

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

index 0f56915..199ef27 100755 (executable)
@@ -18,6 +18,7 @@ def log_COLSTATECHANGE(e) :
     return u'%5s %s' % (e.state, e.syllabus)
 
 def log_default(e) :
+    return ''
     return str(e)
 
 pprinters = {}
index c0aada5..9a7dd18 100755 (executable)
@@ -29,7 +29,7 @@ $URL$
 import types
 import pygame
 from StringIO import StringIO
-from log import console, eventLog, hiddenEvents, pprinters
+from log import console, eventLogger, hiddenEvents, pprinters
 
 class _EventDispatcher :
     def __init__(self) :
@@ -52,8 +52,7 @@ class _EventDispatcher :
         for event in events :
             listeners = self.registry.get(event.type, {})
             if not hiddenEvents.has_key(event.type):
-            #if listeners and not hiddenEvents.has_key(event.type) :
-                eventLog.info(pprinters[event.type](event))
+                eventLogger.info(event)
             for listener in listeners.keys() :
                 listener(event)
 
index 457866b..b2cd407 100755 (executable)
@@ -10,11 +10,32 @@ from events import TIMEOUT, COLOVER, eventNames
 from event_pprinters import pprinters
 import sys
 import pygame
-from logging import basicConfig, getLogger, DEBUG
+import logging
 
-basicConfig(level=DEBUG, stream = sys.stdout)
-console = getLogger('minwii')
-eventLog = getLogger('minwii.events')
+
+class EventLoggerAdapter(logging.LoggerAdapter) :
+    
+    FORMAT = "%(ticks)-15s %(eventName)s %(message)s"
+    
+    def process(self, msg, kwargs) :
+        pp = pprinters.get(msg.type, lambda e: '')
+        extra = {}
+        extra['eventName'] = eventNames[msg.type]
+        extra['ticks'] = pygame.time.get_ticks()
+        kwargs['extra']=extra
+        return pp(msg), kwargs
+
+#logging.basicConfig(level=logging.DEBUG, stream = sys.stdout)
+
+console = logging.getLogger('minwii.console')
+_eventLogger = logging.getLogger('minwii.events')
+_eventLogger.setLevel(logging.INFO)
+_eventHandler = logging.StreamHandler()
+_eventFormatter = logging.Formatter(EventLoggerAdapter.FORMAT)
+_eventHandler.setFormatter(_eventFormatter)
+_eventLogger.addHandler(_eventHandler)
+
+eventLogger = EventLoggerAdapter(_eventLogger, {})
 
 hiddenEvents = {pygame.MOUSEMOTION:True,
                 TIMEOUT:True,