关于 python 写 log 的一个疑问
巴扎黑
巴扎黑 2016-11-09 16:45:47
0
1
782

python 自带的 logging 模块虽然有 timerotate ,但是它是把当前 log 文件重命名,然后再开新文件,这样的话,就容易会出现多 process 冲突的问题! 
所以楼主在上家公司时,是用的从 logging 模块扩展的模块,具体实现是每小时一个日志文件(文件名里包含时间信息),各个 process 都 append 方式打开写入,当前小时的 log 写完了,自动用 append 方式打开下一个日志文件,这样就不存在重命名的问题,也不会有多 process 冲突的问题。 
最近做项目,还是想用这种方式,但是换了东家,原来的代码没找到,所以想网上找,结果一点相关的都没找到,难道就没人这么用的吗?那大家是如何处理写 log ,多 process 的问题呢?都用 sockethandler ,让一个单独的服务去同一写日志?

巴扎黑
巴扎黑

reply all(1)
phpcn_u29

这就是两种打日志的风格了。 
一种是 access.log 
一种是 access.log.2016110810 
看日志框架的类型了,一般都支持自己滚动日志。 
不过一般第一种用的多, op 会自己配置日志切分程序,先 mv 重命名日志,然后再给写日志的进程发一个啥信号,然后程序会自动在原来的位置再起一个新文件打日志。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template