我是靠谱客的博主 清新大炮,这篇文章主要介绍python 程序停止打印日志,解决python logging遇到的坑 日志重复打印问题,现在分享给大家,希望可以做个参考。

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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部