在django command里用 logging 的问题

Madlee   (无竹居士)2020-05-22 17:34:33
有个django项目,把多个logger统一配置在setttings里,
然后有几个守护进程,都写成django 的 Command。每个
进程需要一个logger,
但是,python的logger是不能跨进程的,而每个进程启动
时都会打开settings下所有的logger,这样导致虽然每个
进程都独立写自己的文件,但我在windows bash下也经常
会遇到这样的奇怪错误。
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'E:\\Jobs\\oneroot\\iblis\\logs\\hedge.log'
另外一直没想明白,既然python的logging不能跨进程,那
在生产状态下如果gunicorn之类启动了几个进程,那写logger
不是要乱了吗?
有没有关于django logger的 best practice?或者干脆每个
进程自己配置LOGGER而不统一配置在settings里?
谢谢。

水木社区