From ddac0d578255fe49a40cb32fdf2b2868c3cf2f85 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Thu, 9 Jul 2020 08:35:13 -0500 Subject: [PATCH] Allow passing in a logging handler We create formatters on the fly in enable_logging. Allow passing in a custom handler that we wire up. Change-Id: Ic01540fe80be8c91e0121a33a2bfa9c9dc4b2da2 --- openstack/_log.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/openstack/_log.py b/openstack/_log.py index ea759ce3d..13529204e 100644 --- a/openstack/_log.py +++ b/openstack/_log.py @@ -44,9 +44,11 @@ def setup_logging(name, handlers=None, level=None): def enable_logging( - debug=False, http_debug=False, path=None, stream=None, - format_stream=False, - format_template='%(asctime)s %(levelname)s: %(name)s %(message)s'): + debug=False, http_debug=False, path=None, stream=None, + format_stream=False, + format_template='%(asctime)s %(levelname)s: %(name)s %(message)s', + handlers=None, +): """Enable logging output. Helper function to enable logging. This function is available for @@ -90,18 +92,23 @@ def enable_logging( formatter = logging.Formatter(format_template) - handlers = [] + if handlers: + for handler in handlers: + handler.setFormatter(formatter) - if stream is not None: - console = logging.StreamHandler(stream) - if format_stream: - console.setFormatter(formatter) - handlers.append(console) + else: + handlers = [] - if path is not None: - file_handler = logging.FileHandler(path) - file_handler.setFormatter(formatter) - handlers.append(file_handler) + if stream is not None: + console = logging.StreamHandler(stream) + if format_stream: + console.setFormatter(formatter) + handlers.append(console) + + if path is not None: + file_handler = logging.FileHandler(path) + file_handler.setFormatter(formatter) + handlers.append(file_handler) setup_logging('openstack', handlers=handlers, level=level) setup_logging('keystoneauth', handlers=handlers, level=level)