Closes #16521: Improved error handling for basicConfig(), added tests for same.

This commit is contained in:
Vinay Sajip 2012-11-25 15:11:46 +00:00
parent bf6ecf92fa
commit d27e05d734
2 changed files with 168 additions and 9 deletions

View file

@ -1674,22 +1674,25 @@ def basicConfig(**kwargs):
_acquireLock()
try:
if len(root.handlers) == 0:
filename = kwargs.get("filename")
filename = kwargs.pop("filename", None)
if filename:
mode = kwargs.get("filemode", 'a')
mode = kwargs.pop("filemode", 'a')
hdlr = FileHandler(filename, mode)
else:
stream = kwargs.get("stream")
stream = kwargs.pop("stream", None)
hdlr = StreamHandler(stream)
fs = kwargs.get("format", BASIC_FORMAT)
dfs = kwargs.get("datefmt", None)
style = kwargs.get("style", '%')
fs = kwargs.pop("format", BASIC_FORMAT)
dfs = kwargs.pop("datefmt", None)
style = kwargs.pop("style", '%')
fmt = Formatter(fs, dfs, style)
hdlr.setFormatter(fmt)
root.addHandler(hdlr)
level = kwargs.get("level")
level = kwargs.pop("level", None)
if level is not None:
root.setLevel(level)
if kwargs:
s = ', '.join(kwargs.keys())
raise ValueError('Unexpected in keyword arguments: %s' % s)
finally:
_releaseLock()