django - 如何在生产环境中记录 Django 警告和错误以记录文件?
问题描述
我想要实现的是生产中发生的警告和错误(即DEBUG=False
)被记录到旋转日志文件中。
我试过这个
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'handlers': {
'file': {
'level': 'WARNING',
'class': 'logging.FileHandler',
'filename': 'staging.log',
},
},
'loggers': {
'': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
'django': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
'django.request': {
'handlers': ['file'],
'level': 'WARNING',
'propagate': True,
},
},
}
但是,上面记录了所有内容,而不仅仅是日志级别WARNING
及以上的消息。
解决方案
您可以在此处关注 django 记录器。
在你的views.py中:
import logging
logger = logging.getLogger(__name__)
logger.error()
然后您可以使用或logger.warning()
或进行录制logger.info()
。它将在您的主项目目录中创建一个记录器文件,并列出所有记录详细信息。
看到这个:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
'handlers': {
'logfile': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': "yourproject_name.log",
'maxBytes': 100000,
'backupCount': 2,
'formatter': 'verbose',
},
},
'loggers': {
'django': {
'handlers': ['logfile'],
'level': 'INFO',
'propagate': True,
},
'apps': {
'handlers': ['logfile'],
'level': 'DEBUG',
'propagate': True,
},
},
}
推荐阅读
- perl - 在perl中用多个空格替换单个空格
- python - xpath没有获取所有链接
- python - 从具有相同 ID 的行创建列
- javascript - 如何在nodejs中接收上传的文件
- arm64 - 跨工具链构建时 arm-trusted-firmware 编译出错
- c# - 定义新的 ActiveXObject 只返回“错误”
- spring-boot - DispatcherServlet 配置需要包含一个支持这个处理程序的 HandlerAdapter
- php - 使用 PHP 上传 Excel 并根据日期值拆分为多个文件
- arrays - 带有 async/await 的 Mongodb $pull 无法正常工作
- javascript - 如何动态调用文件夹中的视频以循环播放 HTML 中的所有视频?