mirror of https://github.com/python/cpython
Closes #23207: logging.basicConfig() now does additional validation of its arguments.
This commit is contained in:
commit
ecb5de3d5e
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue