diff --git a/openstack/common/cfg.py b/openstack/common/cfg.py index 8f25c5cb7..a6500eb63 100644 --- a/openstack/common/cfg.py +++ b/openstack/common/cfg.py @@ -1735,11 +1735,13 @@ class CommonConfigOpts(ConfigOpts): BoolOpt('debug', short='d', default=False, - help='Print debugging output'), + help='Print debugging output (set logging level to ' + 'DEBUG instead of default WARNING level).'), BoolOpt('verbose', short='v', default=False, - help='Print more verbose output'), + help='Print more verbose output (set logging level to ' + 'INFO instead of default WARNING level).'), ] logging_cli_opts = [ diff --git a/openstack/common/log.py b/openstack/common/log.py index 37f405b3a..0be34a501 100644 --- a/openstack/common/log.py +++ b/openstack/common/log.py @@ -361,10 +361,12 @@ def _setup_logging_from_conf(product_name): datefmt=datefmt)) handler.setFormatter(LegacyFormatter(datefmt=datefmt)) - if CONF.verbose or CONF.debug: + if CONF.debug: log_root.setLevel(logging.DEBUG) - else: + elif CONF.verbose: log_root.setLevel(logging.INFO) + else: + log_root.setLevel(logging.WARNING) level = logging.NOTSET for pair in CONF.default_log_levels: diff --git a/tests/unit/test_log.py b/tests/unit/test_log.py index cc032d9c1..a4a7915fd 100644 --- a/tests/unit/test_log.py +++ b/tests/unit/test_log.py @@ -52,13 +52,19 @@ class LoggerTestCase(test_utils.BaseTestCase): self.config(verbose=True) log.setup("test_is_verbose") logger = logging.getLogger("test_is_verbose") + self.assertEqual(logging.INFO, logger.getEffectiveLevel()) + + def test_will_be_debug_if_debug_flag_set(self): + self.config(debug=True) + log.setup("test_is_debug") + logger = logging.getLogger("test_is_debug") self.assertEqual(logging.DEBUG, logger.getEffectiveLevel()) def test_will_not_be_verbose_if_verbose_flag_not_set(self): self.config(verbose=False) log.setup("test_is_not_verbose") logger = logging.getLogger("test_is_not_verbose") - self.assertEqual(logging.INFO, logger.getEffectiveLevel()) + self.assertEqual(logging.WARNING, logger.getEffectiveLevel()) def test_no_logging_via_module(self): for func in ('critical', 'error', 'exception', 'warning', 'warn',