当前位置: 首页 > news >正文

fastapi sqlalchemy 日志 logging 写入异常 多进程文件写入异常

报错

--- Logging error ---
Traceback (most recent call last):
  File "C:\ProgramData\miniconda3\Lib\logging\handlers.py", line 74, in emit
    self.doRollover()
  File "C:\ProgramData\miniconda3\Lib\logging\handlers.py", line 179, in doRollover
    self.rotate(self.baseFilename, dfn)
  File "C:\ProgramData\miniconda3\Lib\logging\handlers.py", line 115, in rotate
    os.rename(source, dest)
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。

资料

关于python多进程日志输出问题的解决方案_python 多进程日志写入-CSDN博客

1.nb_log 简介 — nb_log v0.1 文档(太长)

Python入门之logging日志模块以及多进程日志-腾讯云开发者社区-腾讯云(快速)

python Flask logging日志报错“另一个程序正在使用此文件,进程无法访问”_python flask 另一个程序正在使用此文件-CSDN博客

logging多进程报错:PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问_python logging error 多进程 permissionerror: [winerro-CSDN博客

logging模块多进程问题及解决方案_python logging多进程无法滚动-CSDN博客

背景

  fastapi项目 开发过程中,将 sqlalchemy 的sql语句等信息写入到日志文件中,采用 日志轮转 的方式进行日志文件切割,触发异常:

PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。

多个进程同时对同一个文件进行写操作时(一进程写日志内容,一个进程修改日志文件名),导致loggingError(就像我们打开一个word文件后,如果不关闭这个文件就没有办法去修改这个文件的文件名一样)(应当注意,logging 可以同时进行多个写操作,线程安全的,内容写满后,进行日志切割(重命名)才会引发这个错误)

解决

保证对同一个文件的重命名操作和写入内容操作不是同时进行的:

1.修改源码;

2.所有日志写入一个队列,对队列统一处理;

3.引入三方包;

http://www.dtcms.com/a/26676.html

相关文章:

  • python-leetcode 37.翻转二叉树
  • Javascript网页设计实例:通过JS实现上传Markdown转化为脑图并下载脑图
  • 火语言RPA--Excel关闭保存文档
  • 【HarmonyOS Next】鸿蒙监听手机按键
  • 汇能感知的光谱相机/模块产品有哪些?
  • 【python】tkinter简要教程
  • oppo,汤臣倍健,康冠科技,高途教育25届春招内推
  • 记录一下windows11编译Openpose的过程
  • 使用VSCODE开发C语言程序
  • 【PLL】应用:时钟生成
  • 【项目日记】仿RabbitMQ实现消息队列 --- 模块设计
  • 【云安全】云原生-Docker(六)Docker API 未授权访问
  • unity学习49:寻路网格链接 offMeshLinks, 以及传送门效果
  • 使用FFmpeg将PCMA格式的WAV文件转换为16K采样率的PCM WAV文件
  • 基于SpringBoot实现的宠物领养系统平台功能一
  • JUC并发编程——Java线程(一)
  • 从线程池到负载均衡:高并发场景下的系统优化实战
  • 本地部署Anything LLM+Ollama+DeepSeek R1打造AI智能知识库教程
  • 【弹性计算】虚拟机云服务器
  • 嵌入式开发:天线(1):天线增益-dBi
  • C/C++子函数申请对应二维数组的动态内存传给主函数使用
  • JavaScript数组-遍历数组
  • linux 命令 pidstat,安装此命令,解释其输出,附录 iostat,vmstat、 mpstat
  • Git环境搭建指南
  • 【<foreignObject>元素是什么】
  • 【玩转 Postman 接口测试与开发2_020】(完结篇)DIY 实战:随书示例 API 项目本地部署保姆级搭建教程(含完整调试过程)
  • windows使用clion运行lua文件,并且使用cjson
  • 计算机毕业设计Python+LSTM模型微博舆情分析系统 微博舆情预测 微博爬虫 微博大数据(源码+LW文档+PPT+详细讲解)
  • 【实物仿真】基于Msp430设计的环境监测系统(系统资料)
  • 如何查看端口是否被占用