Python 从多进程记录损坏的文件?
我使用Django通过gunicorn提供服务,有四个gevent工作人员,并且有一些日志记录配置,特别是它使用Python 从多进程记录损坏的文件?,python,logging,gunicorn,python-logging,Python,Logging,Gunicorn,Python Logging,我使用Django通过gunicorn提供服务,有四个gevent工作人员,并且有一些日志记录配置,特别是它使用RotatingFileHandler。python文档说明: 尽管日志记录是线程安全的,并且支持从单个进程中的多个线程记录到单个文件,但不支持从多个进程记录到单个文件,因为Python中没有标准的方法可以跨多个进程序列化对单个文件的访问 因此,在我当前的配置中,gunicorn只有一个父进程,并且有一些线程,因此日志记录不会损坏文件,但在我的生产中,备份文件已损坏,但无法在本地设置中
RotatingFileHandler
。python文档说明:
尽管日志记录是线程安全的,并且支持从单个进程中的多个线程记录到单个文件,但不支持从多个进程记录到单个文件,因为Python中没有标准的方法可以跨多个进程序列化对单个文件的访问
因此,在我当前的配置中,gunicorn只有一个父进程,并且有一些线程,因此日志记录不会损坏文件,但在我的生产中,备份文件已损坏,但无法在本地设置中再现这种情况
我应该假设配置很好并继续使用它,还是应该采用不同的方法(例如,
多处理.Queue
或SocketHandler
)?如果您有四个事件工作程序,这意味着有四个不同的进程进行请求处理和日志记录——因此您可能应该使用所述的SocketHandler
。我通常使用运行侦听器进程。gevent工作人员使用不同的进程进行侦听?我以为gunicorn会启动一个主进程,并根据需要生成gevent的尽可能多的工作人员。@MaskedMan是的,请看哦,谢谢,很高兴在这里见到您(python日志记录包的作者!)