Django官方推荐的日志就是python自带的 logger 模块。
python 官方文档指出:
Although logging is thread-safe, and logging to a single file from multiple threads in a single process is supported, logging to a single file from multiple processes is not supported.
可见,python自带的日志模块不支持多进程。也就是说,多个进程同时处理同一个文件,会出问题。
问题来了,Django服务是多进程吗?
这需要看 web 服务器的配置。windows下常用IIS作为web服务器, 它来决定需要开多少个Django进程来处理请求。
所以,在Django中使用不支持进程安全的功能时,要特别注意。例如,可以在日志文件名称中,增加进程ID标志符,来保证每个文件只被一个进程操作,这样来避免并发带来的问题。
IIS应用池
网友评论