问题描述
flask logging 不及时写入日志文件
相关代码
handler = logging.FileHandler('flask.log', encoding='UTF-8')
handler.setLevel(logging.DEBUG)
logging_format = logging.Formatter(
'%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s')
handler.setFormatter(logging_format)
app.logger.addHandler(handler)
current_app.logger.debug('A value for debugging')
current_app.logger.warning('A warning occurred (%d apples)', 42)
current_app.logger.error('An error occurred')
你期待的结果是什么?实际看到的错误信息又是什么?
即时写入log文件,好查看错误,现在是关闭或重启才能写入到log文件中
其实这个可能和 flask 没多大关系,因为在 python 和 系统 的层面,对于文件IO有个缓冲的概念,为了减少等待 IO。
又因为你写的是文件,缓冲策略是 全缓冲,所以会等到缓冲区满或者手动 flush 才会提交给系统写队列,然后再落盘。缓冲区的大小随系统而定,不过一般是 4096 字节。
相关信息: