之前写商城项目的时候,采用的日志处理方式为在终端输出或者写入文件,这样的话,项目部署上线之后,若服务器出现错误,需要到服务器查看相关的错误日志,很不方便。后期在学习别人开源项目的时候,学习到一个开源的实时错误报告工具--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才能看到发生错误的地方的上下文。

当有错误产生,可以登录官网查看错误信息,同时也会给注册时填写的邮箱发送邮件提醒。

最新文章

  1. Google Chrome调试js入门
  2. 使用Statement操作数据库
  3. 作业1-我的第一个博客&GuiHub简单练习
  4. 如何给caffe添加新的layer ?
  5. 关于Jquery EasyUI中的DataGrid服务器端分页随记
  6. MFC网页访问的实现示例
  7. redis五种数据类型
  8. ubuntu 15.10 安装jdk
  9. Triangle LeetCode |My solution
  10. [模板] 动态树/LCT
  11. 宏开发:excel中添加拼接行
  12. fiddler 抓包工具(新猿旺学习总结)
  13. Windows Server 2016-Nano Server介绍
  14. less 查看日志
  15. DesignMode的重载 C#
  16. VS2017 配置ImageMagick
  17. 使用 TListView 控件(4)
  18. vue.js 是如何做到数据响应的
  19. 【BZOJ-1396&2865】识别子串&字符串识别 后缀自动机/后缀树组 + 线段树
  20. Charles(网络封包分析工具)

热门文章

  1. 实战build-react(三)
  2. BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛 水题~
  3. UVa 122 Trees on the level (动态建树 && 层序遍历二叉树)
  4. 完美解决safari、微信浏览器下拉回弹效果。
  5. 人脸三维建模A Morphable Model For The Synthesis Of 3D Faces(三维人脸合成的变形模型)
  6. HDU1847--Good Luck in CET-4 Everybody!(SG函数)
  7. [CSP-S模拟测试]:电压机制(图论+树上差分)
  8. 一、Spring MVC起步——IntelliJ IDEA 搭建Spring MVC环境(手把手搭建)
  9. idea使用 git 撤销commit 原
  10. VBA通过C#以API方式调用JS脚本函数