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
+import os
+import datetime
+LOG_FORMAT_VERSION='1.0-alpha'
hiddenEvents = {pygame.MOUSEMOTION:True,
+ pygame.MOUSEBUTTONDOWN:True,
+ pygame.MOUSEBUTTONUP: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)
+
+logsdir = os.path.join(os.path.expanduser('~'), 'minwii_logs')
+if not os.path.exists(logsdir) :
+ os.mkdir(logsdir)
+
+logfile = os.path.join(logsdir, datetime.datetime.now().strftime('%Y-%m-%d-%H_%M_%S.log'))
+logfile = open(logfile, 'w')
+
+console = logging.getLogger('minwii.console')
+console.setLevel(logging.DEBUG)
+handler = logging.StreamHandler(logfile)
+handler.setFormatter(logging.Formatter('APP %(message)s'))
+console.addHandler(handler)
+
+_eventLogger = logging.getLogger('minwii.events')
+_eventLogger.setLevel(logging.INFO)
+_eventHandler = logging.StreamHandler(logfile)
+_eventFormatter = logging.Formatter(EventLoggerAdapter.FORMAT)
+_eventHandler.setFormatter(_eventFormatter)
+_eventLogger.addHandler(_eventHandler)
+_eventLogger.addFilter(EventFilter())
+
+eventLogger = EventLoggerAdapter(_eventLogger, {})