bpo-38586: setting logging.Handler .name property in fileConfig (GH-16918)

This commit is contained in:
Lucas Cimon 2019-10-31 09:06:25 +01:00 committed by Vinay Sajip
parent 79d4ed102a
commit b15100fe7d
3 changed files with 26 additions and 0 deletions

View File

@ -143,6 +143,7 @@ def _install_handlers(cp, formatters):
kwargs = section.get("kwargs", '{}') kwargs = section.get("kwargs", '{}')
kwargs = eval(kwargs, vars(logging)) kwargs = eval(kwargs, vars(logging))
h = klass(*args, **kwargs) h = klass(*args, **kwargs)
h.name = hand
if "level" in section: if "level" in section:
level = section["level"] level = section["level"]
h.setLevel(level) h.setLevel(level)

View File

@ -1591,6 +1591,30 @@ class ConfigFileTest(BaseTest):
self.apply_config(self.disable_test, disable_existing_loggers=False) self.apply_config(self.disable_test, disable_existing_loggers=False)
self.assertFalse(logger.disabled) self.assertFalse(logger.disabled)
def test_config_set_handler_names(self):
test_config = """
[loggers]
keys=root
[handlers]
keys=hand1
[formatters]
keys=form1
[logger_root]
handlers=hand1
[handler_hand1]
class=StreamHandler
formatter=form1
[formatter_form1]
format=%(levelname)s ++ %(message)s
"""
self.apply_config(test_config)
self.assertEquals(logging.getLogger().handlers[0].name, 'hand1')
def test_defaults_do_no_interpolation(self): def test_defaults_do_no_interpolation(self):
"""bpo-33802 defaults should not get interpolated""" """bpo-33802 defaults should not get interpolated"""
ini = textwrap.dedent(""" ini = textwrap.dedent("""

View File

@ -0,0 +1 @@
Now :func:`~logging.config.fileConfig` correcty sets the .name of handlers loaded.