概述
python 中 logging模块 假如遇到 多线程 或者 多进程 或者在web框架中自定义logging的话(一个请求就是一个独立的线程)非常容易重复打印日志 和造成内存崩溃,所以:
解决方法如下:
重写日志方法 用类:
class Log():
import logging
def __init__(self):
self.logger = logging.getLogger(__name__)
# 以下三行为清空上次文件
# 这为清空当前文件的logging 因为logging会包含所有的文件的logging
logging.Logger.manager.loggerDict.pop(__name__)
# 将当前文件的handlers 清空
self.logger.handlers = []
# 然后再次移除当前文件logging配置
self.logger.removeHandler(self.logger.handlers)
# 这里进行判断,如果logger.handlers列表为空,则添加,否则,直接去写日志
if not self.logger.handlers:
# loggger 文件配置路径
self.handler = logging.FileHandler(os.getcwd() + '/logger/%s_log/%s_score.log' % (str(dt.date.today()), str(dt.date.today())))
# logger 配置等级
self.logger.setLevel(logging.DEBUG)
# logger 输出
最后
以上就是清新大炮为你收集整理的python 程序停止打印日志,解决python logging遇到的坑 日志重复打印问题的全部内容,希望文章能够帮你解决python 程序停止打印日志,解决python logging遇到的坑 日志重复打印问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复