python日志多线程切割问题

问题分析

今天查看项目日志发现主日志文件中只有很少的日志,经过排查发现日志输出到切割以前的文件中去了。

项目使用了RotatingFileHandler,按文件大小切割日志文件,并且启动使用的gunicorn启动了五个workers,第一次启动正常,当日志达到切割时,多个线程同时去切割后得到的写入文件是切割后的文件,导致了多线程下写入不同文件中。

解决问题

  • 可以自己根据RotatingFileHandler写一个,加锁实现多线程只启动一个切割

  • ConcurrentLogHandler 更换这个库即可

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器