Kaydet (Commit) 1ab32f6e authored tarafından Vinay Sajip's avatar Vinay Sajip

logging: Added threading interlock in basicConfig().

üst 588bd847
...@@ -1497,22 +1497,28 @@ def basicConfig(**kwargs): ...@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment