博客
关于我
Django进阶 ----日志管理
阅读量:571 次
发布时间:2019-03-09

本文共 1377 字,大约阅读时间需要 4 分钟。

  • 概念说明
    日志信息记录了一个事件的发生,通常包括以下几个关键要素:
    • 事件发生时间
    • 事件发生位置
    • 事件的严重程度(日志级别)
    • 事件内容

    日志级别分为以下几种:

    • DEBUG:用于调试目的的低级系统信息
    • INFO:一般系统信息
    • WARNING:已发生的小问题的警告信息
    • ERROR:已发生的主要问题的错误信息
    • CRITICAL:已发生的严重问题的信息
    1. Django日志模块
      Django默认使用的日志模块是 Python 的 logging 模块,主要由四个部分组成:
      • Logger 记录仪:生成和记录日志信息及级别
      • Handler 处理程序:根据日志级别交由相应处理程序处理(如生成日志文件或发送邮件)
      • Filters 过滤器:日志交由处理程序处理前需满足的过滤条件
      • Formatters 格式化程序:决定日志的打印输出格式

      常用配置示例:

      import logging  logger = logging.getLogger(__name__)  def my_view(request, arg1, arg2):      # 其他业务逻辑处理      if error_happens:          logger.error('Something went wrong!')
      1. Loguru日志模块
        Loguru 是一个强大且灵活的日志工具库,安装后直接在视图中使用:
      2. from loguru import logger  logger.add("django.log",             format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}",             rotation="100 MB",             filter="",             level="INFO",             encoding='utf-8')  def my_view(request, arg1, arg2):      # 其他业务逻辑处理      if error_happens:          logger.error("Something went wrong")
        1. Sentry错误监控
          Sentry 是一款广泛支持的错误监控工具,支持 Django 等多种框架:
          安装配置步骤如下:
        2. 安装 Sentry SDK:
          pip install --upgrade sentry-sdk
        3. 在 Sentry 网站注册登录,创建 Django 项目并获取 PublicKey
        4. 修改 Django 项目的 settings.py:
        5. import sentry_sdk  from sentry_sdk.integrations.django import DjangoIntegrations  sentry_sdk.init(      dsn="https://yourPublicKey@o0.ingest.sentry.io/0",      integrations=[DjangoIntegration()],      traces_sample_rate=1.0,      send_default_pii=True,  )

    转载地址:http://tyupz.baihongyu.com/

    你可能感兴趣的文章
    order by rand()
    查看>>
    Orderer节点启动报错解决方案:Not bootstrapping because of 3 existing channels
    查看>>
    org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement profile
    查看>>
    org.apache.commons.beanutils.BasicDynaBean cannot be cast to ...
    查看>>
    org.apache.dubbo.common.serialize.SerializationException: com.alibaba.fastjson2.JSONException: not s
    查看>>
    sqlserver学习笔记(三)—— 为数据库添加新的用户
    查看>>
    org.apache.ibatis.exceptions.PersistenceException:
    查看>>
    org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
    查看>>
    org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxxx'异常
    查看>>
    org.apache.poi.hssf.util.Region
    查看>>
    org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
    查看>>
    org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
    查看>>
    org.hibernate.HibernateException: Unable to get the default Bean Validation factory
    查看>>
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
    查看>>
    SQL-CLR 类型映射 (LINQ to SQL)
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
    查看>>
    org.tinygroup.serviceprocessor-服务处理器
    查看>>
    org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
    查看>>