Django在使用logging日志模块时报错无法操作文件PermissionError: [WinError 32]

  • A+
所属分类:python语言

--- Logging error ---

Traceback (most recent call last):

File "C:\Program Files\Python37\lib\logging\handlers.py", line 69, in emit

self.doRollover()

File "C:\Program Files\Python37\lib\logging\handlers.py", line 170, in doRollover

self.rotate(self.baseFilename, dfn)

File "C:\Program Files\Python37\lib\logging\handlers.py", line 110, in rotate

os.rename(source, dest)

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'D:\\ALEX\\python\\operationalsystem\\log\\console.log' -> 'D:\\ALEX\\python\\operationalsystem\\log\\console.log.1'

 
 

问题原因

这个问题只会在开发的时候遇到,而且配置是写入到setting.py配置文件,我们定义了日志文件大小,当日志满了的时候,这时候就会遇到这个问题, 因为在使用Pycharm运行django的时候我们启用两个进程都会去初始化setting.py配置,一个是我们正常访问的,一个是监控代码变化的(你会发现你每次修改一些代码,django会自己重新构建,就是这个进程完成的),由于都占有着文件的句柄,所有在归档的时候失败了,

 
 

解决办法,在启用django项目时加上--noreload参数即可,在菜单栏选择Run->edit configuration

在 Additional options添加即可解决,重新运行django项目就没有报错信息了

 
 

头像

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: