diff options
author | Davanum Srinivas <dims@linux.vnet.ibm.com> | 2012-12-13 22:42:33 -0500 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-01-12 04:35:03 +0000 |
commit | 751c35b1c8ff0730883a8ccdda9b77a49fff2405 (patch) | |
tree | bbe4e6d95b6654ad5c6ba2d50cc6bbbd12c5678b | |
parent | bd1e5a3350305cd6554ba3b0d537d670bf6b4a75 (diff) | |
download | oslo-751c35b1c8ff0730883a8ccdda9b77a49fff2405.tar.gz oslo-751c35b1c8ff0730883a8ccdda9b77a49fff2405.tar.xz oslo-751c35b1c8ff0730883a8ccdda9b77a49fff2405.zip |
Verbose should not enable debug level logging
Fixes LP #989269
Currently setting --verbose in will still allow DEBUG level
message to be logged to python logger object. we need to check
for --debug first (set DEBUG level), then --verbose (set INFO
level) and if neither is set then set default to WARNING
DocImpact
Change-Id: Ic9e3cb5979b2d7283552ad3a461870373f45a239
-rw-r--r-- | openstack/common/cfg.py | 6 | ||||
-rw-r--r-- | openstack/common/log.py | 6 | ||||
-rw-r--r-- | tests/unit/test_log.py | 8 |
3 files changed, 15 insertions, 5 deletions
diff --git a/openstack/common/cfg.py b/openstack/common/cfg.py index 8f25c5c..a6500eb 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 d88a2c9..7fc9b83 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 cc032d9..a4a7915 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', |