aboutsummaryrefslogtreecommitdiff
path: root/rumba/log.py
diff options
context:
space:
mode:
authorMarco Capitani <m.capitani@nextworks.it>2018-01-10 12:41:25 +0100
committerMarco Capitani <m.capitani@nextworks.it>2018-01-11 16:47:32 +0100
commit658a41da85783d0ea06b91e5c72f755144b2e449 (patch)
treeaeee1f589d6f3e7999b5c3c9d2f990ef802cc905 /rumba/log.py
parentbb466208e238be10a0ca42e2db3f9edbb04e7bb8 (diff)
downloadrumba-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.py15
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()