summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2015-01-23 19:54:23 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2015-01-23 19:54:23 (GMT)
commitecb5de3d5e50f72c5f12aa49d912fd60f5f4a6af (patch)
treed1f855f3edb03321cbb2f89a627c6b18efe14be1
parent9aeef32cc0e76a2f70e70133410960f3e1a84e09 (diff)
parent5abca7023c06dbe77a974d060e5d0e81d7785709 (diff)
downloadcpython-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__.py19
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()