mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
logging: Added threading interlock in basicConfig().
This commit is contained in:
parent
588bd847fb
commit
1ab32f6ebe
1 changed files with 22 additions and 16 deletions
|
@ -1497,22 +1497,28 @@ def basicConfig(**kwargs):
|
||||||
using sys.stdout or sys.stderr), whereas FileHandler closes its stream
|
using sys.stdout or sys.stderr), whereas FileHandler closes its stream
|
||||||
when the handler is closed.
|
when the handler is closed.
|
||||||
"""
|
"""
|
||||||
if len(root.handlers) == 0:
|
# Add thread safety in case someone mistakenly calls
|
||||||
filename = kwargs.get("filename")
|
# basicConfig() from multiple threads
|
||||||
if filename:
|
_acquireLock()
|
||||||
mode = kwargs.get("filemode", 'a')
|
try:
|
||||||
hdlr = FileHandler(filename, mode)
|
if len(root.handlers) == 0:
|
||||||
else:
|
filename = kwargs.get("filename")
|
||||||
stream = kwargs.get("stream")
|
if filename:
|
||||||
hdlr = StreamHandler(stream)
|
mode = kwargs.get("filemode", 'a')
|
||||||
fs = kwargs.get("format", BASIC_FORMAT)
|
hdlr = FileHandler(filename, mode)
|
||||||
dfs = kwargs.get("datefmt", None)
|
else:
|
||||||
fmt = Formatter(fs, dfs)
|
stream = kwargs.get("stream")
|
||||||
hdlr.setFormatter(fmt)
|
hdlr = StreamHandler(stream)
|
||||||
root.addHandler(hdlr)
|
fs = kwargs.get("format", BASIC_FORMAT)
|
||||||
level = kwargs.get("level")
|
dfs = kwargs.get("datefmt", None)
|
||||||
if level is not None:
|
fmt = Formatter(fs, dfs)
|
||||||
root.setLevel(level)
|
hdlr.setFormatter(fmt)
|
||||||
|
root.addHandler(hdlr)
|
||||||
|
level = kwargs.get("level")
|
||||||
|
if level is not None:
|
||||||
|
root.setLevel(level)
|
||||||
|
finally:
|
||||||
|
_releaseLock()
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Utility functions at module level.
|
# Utility functions at module level.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue