django商城项目之用sentry管理日志
Posted hzhst
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django商城项目之用sentry管理日志相关的知识,希望对你有一定的参考价值。
之前写商城项目的时候,采用的日志处理方式为在终端输出或者写入文件,这样的话,项目部署上线之后,若服务器出现错误,需要到服务器查看相关的错误日志,很不方便。后期在学习别人开源项目的时候,学习到一个开源的实时错误报告工具--sentry。用sentry来管理日志,我们可以使用sentry官网(https://sentry.io/)提供的云服务,只需要注册一个sentry账号,这样我们就可以到官网查看错误日志。首先安装扩展包 pip install raven
在django
的settings
里配置sentry
INSTALLED_APPS = (
‘raven.contrib.django.raven_compat‘,
)
RAVEN_CONFIG =
‘dsn‘: 此处填对应项目的dsn,
# If you are using git, you can also automatically configure the
# release based on the git info.
# ‘release‘: raven.fetch_git_sha(os.path.abspath(os.pardir)),
日志的配置:
LOGGING =
‘version‘: 1,
‘disable_existing_loggers‘: True, # 是否禁用已经存在的日志器
‘root‘:
‘level‘: ‘WARNING‘,
‘handlers‘: [‘sentry‘],
,
‘formatters‘: # 显示日志的格式
‘verbose‘:
‘format‘: ‘%(levelname)s %(asctime)s %(module)s ‘
‘%(process)d %(thread)d %(message)s‘
,
,
‘handlers‘: # 日志处理的方法
‘sentry‘:
‘level‘: ‘ERROR‘, # To capture more than ERROR, change to WARNING, INFO, etc.
‘class‘: ‘raven.contrib.django.raven_compat.handlers.SentryHandler‘,
‘tags‘: ‘custom-tag‘: ‘x‘,
,
‘console‘: # 在终端中输出
‘level‘: ‘DEBUG‘,
‘class‘: ‘logging.StreamHandler‘,
‘formatter‘: ‘verbose‘
,
‘file‘:
‘level‘:‘INFO‘,
‘class‘:‘logging.handler.RotaingFileHandler‘,
‘filename‘:os.path.join(os.path.dirname(BASE_DIR),‘logs‘), # 日志文件位置
‘maxBytes‘:300*1024*1024,
‘backupCount‘:10,
‘formatter‘:‘verbose‘,
,
‘loggers‘: # 日志器
‘django‘: # 日志器的名称
‘level‘: ‘ERROR‘,
‘handlers‘: [‘sentry‘, ‘console‘, ‘file‘],
‘propagate‘: True, # 是否继续传递日志信息
,
使用方法:
import logging logger = logging.getLogger(__name__) logger.error(‘There was some crazy error‘, exc_info=True, extra= # Optionally pass a request and we‘ll grab any information we can ‘request‘: request, )
注意,添加了request才能看到发生错误的地方的上下文。
当有错误产生,可以登录官网查看错误信息,同时也会给注册时填写的邮箱发送邮件提醒。
以上是关于django商城项目之用sentry管理日志的主要内容,如果未能解决你的问题,请参考以下文章