def process_deferreds(): """ Forwards log messages and status, cached before main window was available. """ global deferred_logs, deferred_status, window if window: if deferred_logs: for msg in deferred_logs: wx.PostEvent(window, guibase.LogEvent(text=msg)) del deferred_logs[:] if deferred_status: wx.PostEvent(window, guibase.StatusEvent(text=deferred_status[0])) del deferred_status[:]
def log(text, *args): """ Logs a timestamped message to main window. @param args string format arguments, if any, to substitute in text """ global deferred_logs, window timestamp = datetime.datetime.now() msg = "%s,%03d\t%s" % (timestamp.strftime("%H:%M:%S"), timestamp.microsecond / 1000, text % args ) if window: process_deferreds() wx.PostEvent(window, guibase.LogEvent(text=msg)) else: deferred_logs.append(msg)
def log(text, *args): """ Logs a timestamped message to main window. @param args string format arguments, if any, to substitute in text """ global deferred_logs, is_cli, is_verbose, window now = datetime.datetime.now() try: finaltext = text % args if args else text except UnicodeError: args = tuple(map(util.to_unicode, args)) finaltext = text % args if args else text if "\n" in finaltext: # Indent all linebreaks finaltext = finaltext.replace("\n", "\n\t\t") msg = "%s.%03d\t%s" % (now.strftime("%H:%M:%S"), now.microsecond / 1000, finaltext) if window: process_deferreds() wx.PostEvent(window, guibase.LogEvent(text=msg)) elif is_cli and is_verbose: sys.stderr.write(msg + "\n"), sys.stderr.flush() else: deferred_logs.append(msg)