错误
最近尝试使用nb_log作日志库,但是在打包后,关闭终端就会出现此问题 :
File “nb_log\monkey_sys_std.py”, line 12, in
AttributeError: ‘NoneType’ object has no attribute ‘write’
解决方法:
由于是因为sys.out.write的原因所致的错误,这里选择的解决方法,是重定向,使得有一个假的终端存在。
log_redirect.py
import sys
from loguru import logger
# --------------------- 重定向 start --------------------
class LoggerWriterPass:
def __init__(self, level):
# 日志级别
self.level = level
def write(self, message):
pass
def flush(self):
# 这个方法是为了满足文件对象的接口,但是什么都不需要做
pass
def print_pass():
# 重定向 redirect
sys.stdout = LoggerWriterPass(DEBUG)
sys.stderr = LoggerWriterPass(ERROR)
# logger.info("--------------------------- start -----------------------")
main.py
from q_log import log_redirect
log_redirect.print_pass() # 早于nb_log的初始化前使用
from nb_log import get_logger
if __name__ == "__main__":
...