diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2015-01-23 19:54:23 (GMT) |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2015-01-23 19:54:23 (GMT) |
commit | ecb5de3d5e50f72c5f12aa49d912fd60f5f4a6af (patch) | |
tree | d1f855f3edb03321cbb2f89a627c6b18efe14be1 | |
parent | 9aeef32cc0e76a2f70e70133410960f3e1a84e09 (diff) | |
parent | 5abca7023c06dbe77a974d060e5d0e81d7785709 (diff) | |
download | cpython-ecb5de3d5e50f72c5f12aa49d912fd60f5f4a6af.zip cpython-ecb5de3d5e50f72c5f12aa49d912fd60f5f4a6af.tar.gz cpython-ecb5de3d5e50f72c5f12aa49d912fd60f5f4a6af.tar.bz2 |
Closes #23207: logging.basicConfig() now does additional validation of its arguments.
-rw-r--r-- | Lib/logging/__init__.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index 5113966..b1dc319 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -1723,7 +1723,7 @@ def basicConfig(**kwargs): _acquireLock() try: if len(root.handlers) == 0: - handlers = kwargs.get("handlers") + handlers = kwargs.pop("handlers", None) if handlers is None: if "stream" in kwargs and "filename" in kwargs: raise ValueError("'stream' and 'filename' should not be " @@ -1733,28 +1733,31 @@ def basicConfig(**kwargs): raise ValueError("'stream' or 'filename' should not be " "specified together with 'handlers'") if handlers is None: - filename = kwargs.get("filename") + filename = kwargs.pop("filename", None) if filename: - mode = kwargs.get("filemode", 'a') + mode = kwargs.pop("filemode", 'a') h = FileHandler(filename, mode) else: - stream = kwargs.get("stream") + stream = kwargs.pop("stream", None) h = StreamHandler(stream) handlers = [h] - dfs = kwargs.get("datefmt", None) - style = kwargs.get("style", '%') + dfs = kwargs.pop("datefmt", None) + style = kwargs.pop("style", '%') if style not in _STYLES: raise ValueError('Style must be one of: %s' % ','.join( _STYLES.keys())) - fs = kwargs.get("format", _STYLES[style][1]) + fs = kwargs.pop("format", _STYLES[style][1]) fmt = Formatter(fs, dfs, style) for h in handlers: if h.formatter is None: h.setFormatter(fmt) root.addHandler(h) - level = kwargs.get("level") + level = kwargs.pop("level", None) if level is not None: root.setLevel(level) + if kwargs: + keys = ', '.join(kwargs.keys()) + raise ValueError('Unrecognised argument(s): %s' % keys) finally: _releaseLock() |