Skip to content

Commit 67354f6

Browse files
author
Dean Troyer
committed
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
1 parent 497a389 commit 67354f6

2 files changed

Lines changed: 44 additions & 10 deletions

File tree

‎openstackclient/common/commandmanager.py‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ def _load_commands(self, group=None):
3737
group = self.namespace
3838
self.group_list.append(group)
3939
for ep in pkg_resources.iter_entry_points(group):
40-
LOG.debug('found command %r', ep.name)
4140
cmd_name = (
4241
ep.name.replace('_', ' ')
4342
if self.convert_underscores

‎openstackclient/shell.py‎

Lines changed: 44 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,50 @@ def __init__(self):
123123
help="Show this help message and exit",
124124
)
125125

126+
def configure_logging(self):
127+
"""Configure logging for the app
128+
129+
Cliff sets some defaults we don't want so re-work it a bit
130+
"""
131+
132+
if self.options.debug:
133+
# --debug forces verbose_level 3
134+
# Set this here so cliff.app.configure_logging() can work
135+
self.options.verbose_level = 3
136+
137+
super(OpenStackShell, self).configure_logging()
138+
root_logger = logging.getLogger('')
139+
140+
# Requests logs some stuff at INFO that we don't want
141+
# unless we have DEBUG
142+
requests_log = logging.getLogger("requests")
143+
requests_log.setLevel(logging.ERROR)
144+
145+
# Other modules we don't want DEBUG output for so
146+
# don't reset them below
147+
iso8601_log = logging.getLogger("iso8601")
148+
iso8601_log.setLevel(logging.ERROR)
149+
150+
# Set logging to the requested level
151+
self.dump_stack_trace = False
152+
if self.options.verbose_level == 0:
153+
# --quiet
154+
root_logger.setLevel(logging.ERROR)
155+
elif self.options.verbose_level == 1:
156+
# This is the default case, no --debug, --verbose or --quiet
157+
root_logger.setLevel(logging.WARNING)
158+
elif self.options.verbose_level == 2:
159+
# One --verbose
160+
root_logger.setLevel(logging.INFO)
161+
elif self.options.verbose_level >= 3:
162+
# Two or more --verbose
163+
root_logger.setLevel(logging.DEBUG)
164+
requests_log.setLevel(logging.DEBUG)
165+
166+
if self.options.debug:
167+
# --debug forces traceback
168+
self.dump_stack_trace = True
169+
126170
def run(self, argv):
127171
try:
128172
return super(OpenStackShell, self).run(argv)
@@ -401,15 +445,6 @@ def initialize_app(self, argv):
401445

402446
super(OpenStackShell, self).initialize_app(argv)
403447

404-
# Set requests logging to a useful level
405-
requests_log = logging.getLogger("requests")
406-
if self.options.debug:
407-
requests_log.setLevel(logging.DEBUG)
408-
self.dump_stack_trace = True
409-
else:
410-
requests_log.setLevel(logging.WARNING)
411-
self.dump_stack_trace = False
412-
413448
# Save default domain
414449
self.default_domain = self.options.os_default_domain
415450

0 commit comments

Comments
 (0)