在 Django 项目中设置日志文件最大大小

Chi*_*fir 4 python django logging

我的项目中有这个配置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'WARNING',
            'class': 'logging.FileHandler',
            'filename': os.path.join(BASE_DIR, 'debug.log'),
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'WARNING',
            'propagate': True,
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

现在它的大小不受控制地增长。有没有办法控制debug.log文件的大小?在 Django 项目中操作日志文件的最佳方式是什么?
我发现了类似的问题,但我没有直接调用 python 记录器。

sP_*_*sP_ 13

您正在寻找的是 Python 的RotatingFileHandler.

在你的 'handlers'

'file': {
    'level': 'WARNING',
    'class': 'logging.handlers.RotatingFileHandler',
    'filename': os.path.join(BASE_DIR, 'debug.log'),
    'backupCount': 10, # keep at most 10 log files
    'maxBytes': 5242880, # 5*1024*1024 bytes (5MB)
},
Run Code Online (Sandbox Code Playgroud)

当我尝试时,我得到了PermissionError. 这个答案解释了如何处理它。编辑:当您使用 django 的开发服务器运行它时会发生这种情况。在其他情况下应该没有问题。