原创

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

温馨提示:
本文最后更新于 2024年07月11日,已超过 281 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

--- 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'

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

 
 

问题原因

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

 
 

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

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

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

 
 

正文到此结束
本文目录