From 658a41da85783d0ea06b91e5c72f755144b2e449 Mon Sep 17 00:00:00 2001 From: Marco Capitani Date: Wed, 10 Jan 2018 12:41:25 +0100 Subject: storyboard: re-add run_command method Also: logging fix in ssh_support, Enabling changes: storyboard: refactor 'start' method, it was getting big some more minor storyboard refactoring for decoupling update examples to new syntax --- rumba/log.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'rumba/log.py') diff --git a/rumba/log.py b/rumba/log.py index eb6be03..893f5f7 100644 --- a/rumba/log.py +++ b/rumba/log.py @@ -42,6 +42,8 @@ loggers_set = set() mq = multiprocessing.Queue() +logging_listener = None + try: from logging.handlers import QueueHandler @@ -201,6 +203,8 @@ def setup(): formatter = RumbaFormatter() handler.setFormatter(formatter) listener = QueueListener(mq, handler) + global logging_listener + logging_listener = listener listener.start() @@ -271,3 +275,14 @@ def reset_logging_level(): logger.setLevel(logging.NOTSET) set_logging_level(logging.INFO) set_logging_level(logging.ERROR, '') + + +def flush_and_kill_logging(): + """ + Flushes all queued log messages and stops the logging facility. + Since the logging is done by a daemon thread, log entries might be lost + if execution is interrupted abruptly. Call this method to make sure + this does not happen. + """ + global logging_listener + logging_listener.stop() -- cgit v1.2.3