diff options
| author | Dean Troyer <dtroyer@gmail.com> | 2014-05-07 10:54:38 -0500 |
|---|---|---|
| committer | Dean Troyer <dtroyer@gmail.com> | 2014-06-13 17:15:17 -0500 |
| commit | 67354f651b064c7c67ad749bf75196d59b851d18 (patch) | |
| tree | 338f43dcddbfad4ef6af53f4be776d40668dd35c /openstackclient/shell.py | |
| parent | 497a38903c4a282975b2f197bc4af22c15d8ab21 (diff) | |
| download | python-openstackclient-67354f651b064c7c67ad749bf75196d59b851d18.tar.gz | |
Clean up logging levels
The following logging levels are set according to the combination of
--verbose, --quiet and --debug options:
verbose_level logging level options
0 --quiet ERROR
1 (none) WARNING
2 --verbose INFO
3+ --verbose --verbose DEBUG
or --debug
Logging levels for the requests and iso8601 modules are forced to ERROR.
This is the first step in bp use-logging-not-print
The difference between '--debug' and '--verbose --verbose' is --debug triggers
cliff's exception handling and traceback display.
Change-Id: Ide2233b3316471d279260fb1e7255a6ca2072023
Diffstat (limited to 'openstackclient/shell.py')
| -rw-r--r-- | openstackclient/shell.py | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/openstackclient/shell.py b/openstackclient/shell.py index 719ee480..67eaca55 100644 --- a/openstackclient/shell.py +++ b/openstackclient/shell.py @@ -123,6 +123,50 @@ class OpenStackShell(app.App): help="Show this help message and exit", ) + def configure_logging(self): + """Configure logging for the app + + Cliff sets some defaults we don't want so re-work it a bit + """ + + if self.options.debug: + # --debug forces verbose_level 3 + # Set this here so cliff.app.configure_logging() can work + self.options.verbose_level = 3 + + super(OpenStackShell, self).configure_logging() + root_logger = logging.getLogger('') + + # Requests logs some stuff at INFO that we don't want + # unless we have DEBUG + requests_log = logging.getLogger("requests") + requests_log.setLevel(logging.ERROR) + + # Other modules we don't want DEBUG output for so + # don't reset them below + iso8601_log = logging.getLogger("iso8601") + iso8601_log.setLevel(logging.ERROR) + + # Set logging to the requested level + self.dump_stack_trace = False + if self.options.verbose_level == 0: + # --quiet + root_logger.setLevel(logging.ERROR) + elif self.options.verbose_level == 1: + # This is the default case, no --debug, --verbose or --quiet + root_logger.setLevel(logging.WARNING) + elif self.options.verbose_level == 2: + # One --verbose + root_logger.setLevel(logging.INFO) + elif self.options.verbose_level >= 3: + # Two or more --verbose + root_logger.setLevel(logging.DEBUG) + requests_log.setLevel(logging.DEBUG) + + if self.options.debug: + # --debug forces traceback + self.dump_stack_trace = True + def run(self, argv): try: return super(OpenStackShell, self).run(argv) @@ -401,15 +445,6 @@ class OpenStackShell(app.App): super(OpenStackShell, self).initialize_app(argv) - # Set requests logging to a useful level - requests_log = logging.getLogger("requests") - if self.options.debug: - requests_log.setLevel(logging.DEBUG) - self.dump_stack_trace = True - else: - requests_log.setLevel(logging.WARNING) - self.dump_stack_trace = False - # Save default domain self.default_domain = self.options.os_default_domain |
