我是靠谱客的博主 清新大炮,最近开发中收集的这篇文章主要介绍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 程序停止打印日志,解决python logging遇到的坑 日志重复打印问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部