class ConsoleFormatter(logging.Formatter): def format(self, record): try: msg = record.msg.split(':', 1) if len(msg) == 2: record.msg = msg[1].lstrip() if not record.name or record.name == 'kivy': record.name = msg[0] except Exception: pass levelname = record.levelname if record.levelno == logging.TRACE: levelname = 'TRACE' record.levelname = levelname return super(ConsoleFormatter, self).format(record) # Setup kivy.logger.Logger with our log handlers if _running_known_entry_point: default_console_handler = ConsoleHandler(previous_stderr) default_console_handler.setFormatter(ConsoleFormatter(LOGGING_FORMAT)) default_file_handler = FileHandler() default_file_handler.setFormatter(logging.Formatter(LOGGING_FORMAT)) Logger.addHandler(default_console_handler) Logger.addHandler(default_file_handler) for record in LoggerHistory.history: Logger.callHandlers(record)
if k in ['mappings', 'profile', 'kv_file']: settings[k] = os.path.abspath(os.path.join(os.path.dirname(settings_file), os.path.expandvars(settings[k]))) if not os.path.isfile(settings[k]) or not os.path.getsize(settings[k]) > 0: Logger.error("init: File Not Found '{0}'".format(settings[k])) sys.exit(1) # set kv_file if override exists k = settings.pop('kv_file', None) if k: self.kv_file = k self.settings = settings # our init is done, call parent class init to finish App.__init__(self) return def build(self): return SwitchPanel(**self.settings) def on_stop(self): self.root.shutdown() return if __name__ == '__main__': h = logging.handlers.RotatingFileHandler(filename=os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), 'client.log')), maxBytes=1024*1024, backupCount=9) h.setLevel(logging.INFO) Logger.addHandler(h) Logger.setLevel(logging.INFO) defaultApp().run()
def getLogger(debug=False, fileHandler=None): Logger.setLevel(logging.DEBUG) if fileHandler != None: Logger.addHandler(fileHandler) return Logger