From fb74c7d721993305f172bf8b8d1e2eceb7596cc0 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sat, 22 Sep 2018 05:50:49 -0500 Subject: [PATCH] Turn down stevedore and urllib logging Having stevedore logging set to debug makes actual debug output almost useless, and it's never interesting logging for openstacksdk. enable_logging should do the most expected and useful thing. If someone wants to use openstacksdk in debug mode and see stevedore debug messages, the full power of python logging is available to them. Change-Id: I4cd7e6eb06081768afbc077e5bda397e6ae13e1b --- openstack/_log.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/openstack/_log.py b/openstack/_log.py index 80c864b38..ea759ce3d 100644 --- a/openstack/_log.py +++ b/openstack/_log.py @@ -103,14 +103,20 @@ def enable_logging( file_handler.setFormatter(formatter) handlers.append(file_handler) - # Always set the appropriate level so that if loggers higher in the tree + setup_logging('openstack', handlers=handlers, level=level) + setup_logging('keystoneauth', handlers=handlers, level=level) + + # Turn off logging on these so that if loggers higher in the tree # are more verbose we only get what we want out of the SDK. This is # particularly useful when combined with tools like ansible which set # debug logging level at the logging root. - setup_logging('openstack', handlers=handlers, level=level) - setup_logging('keystoneauth', handlers=handlers, level=level) - setup_logging('urllib3', handlers=handlers, level=level) - setup_logging('stevedore', handlers=handlers, level=level) + # If more complex logging is desired including stevedore debug logging, + # enable_logging should not be used and instead python logging should + # be configured directly. + setup_logging( + 'urllib3', handlers=[logging.NullHandler()], level=logging.INFO) + setup_logging( + 'stevedore', handlers=[logging.NullHandler()], level=logging.INFO) # Suppress warning about keystoneauth loggers setup_logging('keystoneauth.discovery') setup_logging('keystoneauth.identity.base')