如何解决在Django中自动删除日志
建立一个Django应用程序,我试图找出什么是自动删除日志文件的最佳方法。
到目前为止,我的尝试是构建一个删除旧日志的管理命令。由此,我可以在python或服务器级别设置一个调度程序,但是我对该选项并不满意,因为它使部署期间需要执行更多的配置步骤。
我想知道子类化日志模块是否可以在写日志时触发删除日志功能。优点是没有设置进行部署,缺点是如果长时间没有日志记录,则依靠日志写入来清理日志目录可能没有用。另一方面,如果日志记录过多,则可能会浪费资源。
因此,首先,由任何操作触发日志删除是否是一个好主意,什么是最佳选择(每天一次)?
如果没有,以一种优美的方式执行此操作的最佳选择是什么?
解决方法
Web框架的主要目的是处理Web请求。在这里,日志记录是一种子系统,用于创建面包屑,以获取已完成和未完成的图片。子系统的最佳匹配是单独的日志服务,即系统日志。您是否尝试过将日志写入系统并使用系统提供的日志轮换机制对其进行轮换?
,这是我的解决办法,
首先忘记管理命令和调度程序,
然后按如下所示设置我的日志文件处理程序:
'handlers': {
...
'log_file':{
'level': 'INFO','class': 'logging.handlers.TimedRotatingFileHandler','when': 'D','interval': 1,'backupCount': 3,'encoding': 'utf8','filename': os.path.join(log_path,log_name),'formatter': 'verbose',},'mail_admins': {
'level': 'ERROR','filters': ['require_debug_false'],'class': 'django.utils.log.AdminEmailHandler','include_html': True,}
},
使用 TimedRotatingFileHandler 类
- “何时”:“ D”,表示我每天轮换日志
- “间隔”:1,表示轮换每1天发生一次
- “ backupCount”:3,表示我想查看删除日志前3天的历史记录
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。