python进程写文件与多进程记录日志
来源:互联网 发布:编程入门先学什么书 编辑:程序博客网 时间:2024/06/05 19:12
假设有个进程,一直在写一个名字叫做1的文件,然后我们在它运行的过程中将文件改名了,会发生什么事情呢?
写个程序试试:
然后运行它,此时可以看到:
因为进程得到了文件的句柄,所以就算这个文件改名为2了,它也会继续往2这个文件写入的。
这样也就解释了apache在linux启动多个进程响应url请求时,调用TimeRotatingFileHandler时,第二个进程把第一个进程的日志名错误改名为带后缀的文件名,第一个进程也会依旧往带后缀的文件里写入后续的日志。所以看起来xxx.log和xxx.log.20160417都不停的有18号的日志写入。
所以django在linux下多进程使用TimeRotatingFileHandler写日志会有问题。
目前看来,有2种方法处理多进程写日志的问题:
1.进程id加到文件名中,但是apache重启时子进程id也会变;这样可能存在多个非当天的日志但不带时间后缀(进程id不一样)
2.使用concurrentlog第三方库记录日志,下载地址:
https://pypi.python.org/pypi/ConcurrentLogHandler/0.9.1
经过和同事交流,得知一个多进程按日期写日志的库。向作者致敬:
https://github.com/kieslee/mlogging
0 0
- python进程写文件与多进程记录日志
- Python多进程记录日志
- Python 多进程日志记录
- 使用python logging处理多机多进程写同一个日志文件
- python多进程检查端口并写日志
- python 多进程共享数据的读与写
- RAC几个核心进程与日志文件
- 多进程同时操作数据库并同时写日志文件,方法中带参数传递
- Python:进程与进程池
- Python 多进程使用中的一些记录
- Django多进程日志文件问题
- Python多线程与多进程
- Python多线程与多进程
- ubuntu下编写开机自启守护进程,并记录进程信息到日志文件
- Python记录记录(进程与线程多任务管理理论)
- 如何实现多进程写一个文件
- 如何实现多进程写一个文件
- 多进程写文件的共享问题:
- android适配规则(一)
- Agri-Net(POJ_1258)
- mac alias 添加 sublime 快捷键
- .NET Business Connector mode assembly is built against version 'v2.0.50727' of the runtime
- 无限极分类
- python进程写文件与多进程记录日志
- SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结
- 着手实现一个图片选择器-PhotoPicker
- Cheap Paxos
- ODL学习笔记(一)安装OpenDayLight的环境搭建
- 优秀程序员具备的潜质
- 编译原理—括号的对数
- Android支持Emoji表情 MySQL PHP
- 3.Java之运算符