diff options
author | Marco Capitani <m.capitani@nextworks.it> | 2018-01-10 12:41:25 +0100 |
---|---|---|
committer | Marco Capitani <m.capitani@nextworks.it> | 2018-01-11 16:47:32 +0100 |
commit | 658a41da85783d0ea06b91e5c72f755144b2e449 (patch) | |
tree | aeee1f589d6f3e7999b5c3c9d2f990ef802cc905 /rumba/log.py | |
parent | bb466208e238be10a0ca42e2db3f9edbb04e7bb8 (diff) | |
download | rumba-658a41da85783d0ea06b91e5c72f755144b2e449.tar.gz rumba-658a41da85783d0ea06b91e5c72f755144b2e449.zip |
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
Diffstat (limited to 'rumba/log.py')
-rw-r--r-- | rumba/log.py | 15 |
1 files changed, 15 insertions, 0 deletions
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() |