def reopen_log_files():
"""
Function to iterate over all FileHandlers in the logger hierarchy, close
their streams and reopen them.
"""
# Get the manager of the root logger
root = logging.getLogger()
manager = root.manager
mylog = logging.getLogger('nav.logs')
for logger in [root] + manager.loggerDict.values():
try:
for hdl in logger.handlers:
if isinstance(hdl, logging.FileHandler):
mylog.debug("Reopening " + hdl.baseFilename)
hdl.flush()
hdl.acquire()
hdl.stream.close()
hdl.stream = open(hdl.baseFilename, hdl.mode)
hdl.release()
mylog.debug("Reopened " + hdl.baseFilename)
except AttributeError:
continue
评论列表
文章目录