diff --git a/openstack/common/log.py b/openstack/common/log.py index 3b1b557f..44f48902 100644 --- a/openstack/common/log.py +++ b/openstack/common/log.py @@ -410,18 +410,20 @@ def setup(product_name, version='unknown'): sys.excepthook = _create_logging_excepthook(product_name) -def set_defaults(logging_context_format_string, +def set_defaults(logging_context_format_string=None, default_log_levels=None): # Just in case the caller is not setting the # default_log_level. This is insurance because # we introduced the default_log_level parameter # later in a backwards in-compatible change - if default_log_levels is None: - default_log_levels = DEFAULT_LOG_LEVELS - cfg.set_defaults( - log_opts, - logging_context_format_string=logging_context_format_string, - default_log_levels=default_log_levels) + if default_log_levels is not None: + cfg.set_defaults( + log_opts, + default_log_levels=default_log_levels) + if logging_context_format_string is not None: + cfg.set_defaults( + log_opts, + logging_context_format_string=logging_context_format_string) def _find_facility_from_conf(): diff --git a/tests/unit/test_log.py b/tests/unit/test_log.py index 6439a534..a50578f5 100644 --- a/tests/unit/test_log.py +++ b/tests/unit/test_log.py @@ -541,11 +541,6 @@ class SetDefaultsTestCase(test_base.BaseTestCase): for opt in log.log_opts: opt.default = self._orig_defaults[opt.dest] - def test_default_to_none(self): - log.set_defaults(logging_context_format_string=None) - self.conf([]) - self.assertIsNone(self.conf.logging_context_format_string) - def test_default_log_level_to_none(self): log.set_defaults(logging_context_format_string=None, default_log_levels=None) @@ -561,10 +556,10 @@ class SetDefaultsTestCase(test_base.BaseTestCase): self.assertEqual(self.conf.logging_context_format_string, my_default) def test_change_default_log_level(self): - log.set_defaults(logging_context_format_string=None, - default_log_levels=['foo=bar']) + log.set_defaults(default_log_levels=['foo=bar']) self.conf([]) self.assertEqual(['foo=bar'], self.conf.default_log_levels) + self.assertIsNotNone(self.conf.logging_context_format_string) class LogConfigOptsTestCase(test_base.BaseTestCase):