Mercurial > cpython-lru_cache-weakref
changeset 48980:5fd39b84fc29 legacy-trunk
Issue #3726: Allowed spaces in separators in logging configuration files.
| author | Vinay Sajip <vinay_sajip@yahoo.co.uk> |
|---|---|
| date | Wed, 03 Sep 2008 09:20:05 +0000 |
| parents | 2a60f7b42328 |
| children | 4c683ec4415b |
| files | Lib/logging/config.py Lib/test/test_logging.py Misc/NEWS |
| diffstat | 3 files changed, 58 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/Lib/logging/config.py Wed Sep 03 05:57:48 2008 +0000 +++ b/Lib/logging/config.py Wed Sep 03 09:20:05 2008 +0000 @@ -22,7 +22,7 @@ Should work under Python versions >= 1.5.2, except that source line information is not available unless 'sys._getframe()' is. -Copyright (C) 2001-2007 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2008 Vinay Sajip. All Rights Reserved. To use, simply 'import logging' and log away! """ @@ -101,6 +101,8 @@ found = getattr(found, n) return found +def _strip_spaces(alist): + return map(lambda x: string.strip(x), alist) def _create_formatters(cp): """Create and return formatters""" @@ -108,9 +110,10 @@ if not len(flist): return {} flist = string.split(flist, ",") + flist = _strip_spaces(flist) formatters = {} for form in flist: - sectname = "formatter_%s" % string.strip(form) + sectname = "formatter_%s" % form opts = cp.options(sectname) if "format" in opts: fs = cp.get(sectname, "format", 1) @@ -136,10 +139,11 @@ if not len(hlist): return {} hlist = string.split(hlist, ",") + hlist = _strip_spaces(hlist) handlers = {} fixups = [] #for inter-handler references for hand in hlist: - sectname = "handler_%s" % string.strip(hand) + sectname = "handler_%s" % hand klass = cp.get(sectname, "class") opts = cp.options(sectname) if "formatter" in opts: @@ -192,8 +196,9 @@ hlist = cp.get(sectname, "handlers") if len(hlist): hlist = string.split(hlist, ",") + hlist = _strip_spaces(hlist) for hand in hlist: - log.addHandler(handlers[string.strip(hand)]) + log.addHandler(handlers[hand]) #and now the others... #we don't want to lose the existing loggers, @@ -243,8 +248,9 @@ hlist = cp.get(sectname, "handlers") if len(hlist): hlist = string.split(hlist, ",") + hlist = _strip_spaces(hlist) for hand in hlist: - logger.addHandler(handlers[string.strip(hand)]) + logger.addHandler(handlers[hand]) #Disable any old loggers. There's no point deleting #them as other threads may continue to hold references
--- a/Lib/test/test_logging.py Wed Sep 03 05:57:48 2008 +0000 +++ b/Lib/test/test_logging.py Wed Sep 03 09:20:05 2008 +0000 @@ -587,6 +587,48 @@ # config5 specifies a custom handler class to be loaded config5 = config1.replace('class=StreamHandler', 'class=logging.StreamHandler') + # config6 uses ', ' delimiters in the handlers and formatters sections + config6 = """ + [loggers] + keys=root,parser + + [handlers] + keys=hand1, hand2 + + [formatters] + keys=form1, form2 + + [logger_root] + level=WARNING + handlers= + + [logger_parser] + level=DEBUG + handlers=hand1 + propagate=1 + qualname=compiler.parser + + [handler_hand1] + class=StreamHandler + level=NOTSET + formatter=form1 + args=(sys.stdout,) + + [handler_hand2] + class=FileHandler + level=NOTSET + formatter=form1 + args=('test.blah', 'a') + + [formatter_form1] + format=%(levelname)s ++ %(message)s + datefmt= + + [formatter_form2] + format=%(message)s + datefmt= + """ + def apply_config(self, conf): try: fn = tempfile.mktemp(".ini") @@ -653,6 +695,9 @@ def test_config5_ok(self): self.test_config1_ok(config=self.config5) + def test_config6_ok(self): + self.test_config1_ok(config=self.config6) + class LogRecordStreamHandler(StreamRequestHandler): """Handler for a streaming logging request. It saves the log message in the
--- a/Misc/NEWS Wed Sep 03 05:57:48 2008 +0000 +++ b/Misc/NEWS Wed Sep 03 09:20:05 2008 +0000 @@ -56,6 +56,8 @@ Library ------- +- Issue #3726: Allowed spaces in separators in logging configuration files. + - Issue #3719: platform.architecture() fails if there are spaces in the path to the Python binary.
