django商城项目之用sentry管理日志

Posted hzhst

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django商城项目之用sentry管理日志相关的知识,希望对你有一定的参考价值。

之前写商城项目的时候,采用的日志处理方式为在终端输出或者写入文件,这样的话,项目部署上线之后,若服务器出现错误,需要到服务器查看相关的错误日志,很不方便。后期在学习别人开源项目的时候,学习到一个开源的实时错误报告工具--sentry。用sentry来管理日志,我们可以使用sentry官网(https://sentry.io/)提供的云服务,只需要注册一个sentry账号,这样我们就可以到官网查看错误日志。首先安装扩展包 pip install raven

djangosettings里配置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管理日志的主要内容,如果未能解决你的问题,请参考以下文章

使用Sentry集中化日志管理

Docker手动搭建sentry错误日志系统

第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,

Sentry--错误日志收集

Sentry项目监控工具结合vue的安装与使用(前端)

为项目添砖加瓦,日志监控:sentry