@@ -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