当前位置:首页 > python > 正文内容

python logging 模块对多进程的支持

root4年前 (2022-07-09)python2138

深度解决方案

logging 模块 是支持多线程的

但是多进程的会出现问题,因为对文件读写会出现资源的争抢

如何解决对多进程的出现的问题

concurrent-log-handler包 解决问题

该模块同样也为python的标准日志记录软件提供了额外的日志处理程序。即回将日志事件写入日志文件,当文件达到一定大小时,该日志文件将轮流轮转,多个进程可以安全地写入同一日志文件,还可以将其进行压缩(开启)

需要将cloghandler更改为concurrent_log_handler

import logging.handlers
logging.handlers.RotatingFileHandler(filename=filename, maxBytes=41943040, backupCount=5,encoding="utf-8")

更换为:

from concurrent_log_handler import ConcurrentRotatingFileHandler
ConcurrentRotatingFileHandler(filename=filename, maxBytes=41943040, backupCount=5,encoding="utf-8")


扫描二维码推送至手机访问。

版权声明:本文由一叶知秋发布,如需转载请注明出处。

本文链接:https://zhiqiu.top/?id=234

分享给朋友:

相关文章

Python eventlet 模块,Timeout() 控制子程序运行时间

pip install  eventlet #安装依赖包# -*- coding:utf-8 -*- import eventlet import time e...

Popen 使用注意(python)

Popen 的构造函数可以尝试指定一下 close_fds = True意思是不继承主线程的上下文件因为Popen在启动一个进程时容易出现僵尸进程,当主进程死亡时可能会继承主进程的上下文资源...

python os 模块文件常用操作

123456import os #回去当前文件路径os.path.realpath(__file__)#获取文件是否存在os.path.exists(filepath)#获取文件大小os.path.getsize(fil...

python3.5.2版本不支持的语法格式

在使用geoip2的时候,运行被告知包中语法错误查看详情发现在python 3.5中不支持注释var类型如下语法 _buffer: Union[bytes, FileBuffer, "mma...

cmd启动python交互模式 出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x9a in position 533

这是因为在python交互模式的中输出了中文,且是个输出被记录在.python_history中删除历史记录文件C:\Users\Administrator\.python_history...