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

python logging 模块对多进程的支持

root4年前 (2022-07-09)python2208

深度解决方案

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://www.zhiqiu.top/?id=234

分享给朋友:

相关文章

父进程退出后如何退出子进程

我们知道当子进程推出的时候,父进程会收到 SIGCHLD 信号,从而可以采取相应的操作。但是当父进程退出的时候,系统会把子进程的父进程更改为pid=0的 init 进程,而且子进程不会收到任何信号。而我们经常想在父进程退出的时候,让子进程也...

falsk &django +uwsgi 的配置文件

flask的uwsgi配置文件[uwsgi]pythonpath=/usr/bin/python3  #uwsgi采用的py版本,如果项目采用的py版本跟系统默认一直可以不用写base=/***/***/***  &nb...

python 在centos 执行pip安装包时最好提前执行的语句

yum install python-develpip install --upgrade setuptoolspip install --upgrade pi...

自定义logger 模块使调用打印日志的文件为调用文件而不是logger模块

更新logging 源码1248行f f f.f_back替换为f f f.f_back     f_2 f.f_back   ...

python os 模块文件常用操作

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

pip 升级到指定版本,但是py2的pip版本务必在20版本以内包含20版本

python3 -m pip install --user --upgrade pip==9.0.3(换成你想要的版本编号)如果python2的只能升级到20+版本。超过会出现不支持的情况...