Django开发模式会加载两次settings文件导致RotatingFileHandlerError

Posted 413Xiaol

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django开发模式会加载两次settings文件导致RotatingFileHandlerError相关的知识,希望对你有一定的参考价值。

当使用RotatingFileHandler作为django的日志处理器的时候,会报:

Traceback (most recent call last):
File "C:\Python27\lib\logging\handlers.py", line 78, in emit
self.doRollover()
File "C:\Python27\lib\logging\handlers.py", line 141, in doRollover
os.rename(self.baseFilename, dfn)
WindowsError: [Error 32] The process cannot access the file because it is being used by another process

原因是:在开发模式下,通过python manage.py runserver的方式启动django的时候,会启动两个线程去加载settings文件,一个是用来给你服务的,另一个是监控settings文件是否改变的,如果改变就立即让他生效,所以会导致上面的错误,解决方法是加上--noreload参数。

python manage.py runserver --noreload

 

参见老外的日志:

http://azaleasays.com/2014/05/01/django-logging-with-rotatingfilehandler-error/

以上是关于Django开发模式会加载两次settings文件导致RotatingFileHandlerError的主要内容,如果未能解决你的问题,请参考以下文章

django 开发之前后端分离开发模式

Django settings加载

「Django框架」-拆分配置文件settings

为啥在 Django 中更新我的 HTML 之前必须重新加载两次?

Django 是两次初始化视图

django基本执行启动过程的源码简单分析和settings.py分环境配置