#COLOVER:True,
}
+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')
+
+
+class MinWiiStreamHandler(logging.StreamHandler) :
+ logfile = None
+ stream = None
+ env = []
+
+ def __init__(self) :
+ logging.Handler.__init__(self)
+ if self.stream is None :
+ self.setNewStream()
+
+ @classmethod
+ def setNewStream(cls) :
+ if cls.stream and not cls.stream.closed :
+ cls.stream.close()
+ logfile = os.path.join(logsdir, datetime.datetime.now().strftime('%Y-%m-%d-%H_%M_%S.log'))
+ cls.stream = open(logfile, 'a')
+
+ def emit(self, record) :
+ if record.name == 'minwii.env' :
+ if record.getMessage()=='NEW_LOG_FILE' :
+ self.setNewStream()
+ for rec in self.env :
+ logging.StreamHandler.emit(self, rec)
+ return
+ else :
+ self.env.append(record)
+ logging.StreamHandler.emit(self, record)
+
class EventLoggerAdapter(logging.LoggerAdapter) :
FORMAT = "EVT %(ticks)-10s %(eventName)-15s %(message)s"
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')
+def initAppConsole() :
+ global console
+ console = logging.getLogger('minwii.console')
+ console.setLevel(logging.DEBUG)
+ handler = MinWiiStreamHandler()
+ handler.setFormatter(logging.Formatter('APP %(message)s'))
+ console.addHandler(handler)
+
+def initEnvLogger() :
+ global envLogger
+ envLogger = logging.getLogger('minwii.env')
+ envLogger.setLevel(logging.DEBUG)
+ handler = MinWiiStreamHandler()
+ handler.setFormatter(logging.Formatter('ENV %(message)s'))
+ envLogger.addHandler(handler)
+
-console = logging.getLogger('minwii.console')
-console.setLevel(logging.DEBUG)
-handler = logging.StreamHandler(logfile)
-handler.setFormatter(logging.Formatter('APP %(message)s'))
-console.addHandler(handler)
+def initEventLogger():
+ _eventLogger = logging.getLogger('minwii.events')
+ _eventLogger.setLevel(logging.INFO)
+ _eventHandler = MinWiiStreamHandler()
+ _eventFormatter = logging.Formatter(EventLoggerAdapter.FORMAT)
+ _eventHandler.setFormatter(_eventFormatter)
+ _eventLogger.addHandler(_eventHandler)
+ _eventLogger.addFilter(EventFilter())
+ global eventLogger
+ eventLogger = EventLoggerAdapter(_eventLogger, {})
-_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())
+def initLoggers() :
+ initAppConsole()
+ initEnvLogger()
+ initEventLogger()
-eventLogger = EventLoggerAdapter(_eventLogger, {})
+initLoggers()
from musicxml import musicXml2Song
from config import SONG_FILE_PATH
from globals import PLAYING_MODES_DICT
-from log import console, LOG_FORMAT_VERSION
+from log import console, LOG_FORMAT_VERSION, envLogger
class MinWii(object):
def __init__(self, wiimoteSupport=True) :
- console.info('winwii log format version : %s', LOG_FORMAT_VERSION)
+ envLogger.info('winwii log format version : %s', LOG_FORMAT_VERSION)
self.wiimoteSupport = wiimoteSupport
LaunchScreen()
self.app = Desktop()
self.synth = Synth()
self.screenResolution = (1024,768)
- console.info('résolution écran : %s', self.screenResolution)
+ envLogger.info('résolution écran : %s', self.screenResolution)
self.nwiimotes = 0
self.initWiimotes()
+ self.firstSong = True
def initWiimotes(self) :
if self.wiimoteSupport :
console.info("sortie de l'application")
else :
actual_wiimotes = self.WT.get_count()
+ if self.firstSong :
+ self.firstSong = False
+ else :
+ envLogger.info('NEW_LOG_FILE')
console.info('chanson : %s', home.songFile)
console.info('mode : %s', home.modeSelect.value)
if actual_wiimotes is None :