python 自带的 logging 模块虽然有 timerotate ,但是它是把当前 log 文件重命名,然后再开新文件,这样的话,就容易会出现多 process 冲突的问题!
所以楼主在上家公司时,是用的从 logging 模块扩展的模块,具体实现是每小时一个日志文件(文件名里包含时间信息),各个 process 都 append 方式打开写入,当前小时的 log 写完了,自动用 append 方式打开下一个日志文件,这样就不存在重命名的问题,也不会有多 process 冲突的问题。
最近做项目,还是想用这种方式,但是换了东家,原来的代码没找到,所以想网上找,结果一点相关的都没找到,难道就没人这么用的吗?那大家是如何处理写 log ,多 process 的问题呢?都用 sockethandler ,让一个单独的服务去同一写日志?
面对疾风吧2016-11-09 16:46:00
这就是两种打日志的风格了。
一种是 access.log
一种是 access.log.2016110810
看日志框架的类型了,一般都支持自己滚动日志。
不过一般第一种用的多, op 会自己配置日志切分程序,先 mv 重命名日志,然后再给写日志的进程发一个啥信号,然后程序会自动在原来的位置再起一个新文件打日志。