问题描述
出于调试目的,我试图将所有stderr重定向到我的log_file。有一种方法可以将所有错误(也就是第三方库中引发的错误)重定向到我的文件?
这是我定义记录器的方式,但是如果另一个库(例如os“ FileNotFoundError”)引发了意外异常,则该记录确实会打印到控制台,但不会写入日志文件。
PARENT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#create logger
multiprocessing.log_to_stderr()
logger = multiprocessing.get_logger()
logger.setLevel(logging.WARNING)
#create console handler
console_handler = logging.StreamHandler(sys.stderr)
console_handler.setLevel(logging.WARNING)
#create file handler rotation
log_path = os.path.join(PARENT_DIR,'logs')
log_file = os.path.join(log_path,'my_logs.log')
file_handler = logging.handlers.RotatingFileHandler(log_file,maxBytes=10)
file_handler.setLevel(logging.WARNING)
#create formatter and add it to the handler
formatter = logging.Formatter('%(asctime)s-%(levelname)s-%(message)s-%(funcName)s-%(threadName)s-%(processName)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
#add handlers to the logger
logger.addHandler(console_handler)
logger.addHandler(file_handler)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)