美文网首页git 应用django
django的日志系统

django的日志系统

作者: 裴general | 来源:发表于2018-05-12 17:07 被阅读0次

摘要

日志在程序开发中是少不了的,通过日志我们可分析到错误在什么地方,有什么异常。在生产环境下有很大的用途。
django中使用python提供的logging模块,在django中要用logging,并且需要配置一定的规则。
这里有一篇文章总结得比较好:https://www.cnblogs.com/luohengstudy/p/6890395.html

1.logging模块

logging模块为应用程序提供了灵活的手段记录事件、错误、警告和调试信息。对这些信息可以进行收集、筛选、写入文件、发送给系统日志等操作,甚至还可以通过网络发送给远程计算机。

  • 日志记录级别
    logging模块的重点在于生成和处理日志消息。每条消息由一些文本和指示其严重性的相关级别组成。级别包含符号名称和数字值
    CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTEST
    CRTICAL: 关键错误/消息
    ERROR: 错误
    WARNING: 警告信息
    INFO: 通知信息
    DEBUGZ: 调试信息
    NOTEST: 无级别

  • 记录器
    记录器负责管理日志消息的默认行为,包括日志记录级别、输出目标位置、消息格式以及其它基本细节
    filename: 将日志消息附加到指定文件名的文件夹
    filemode: 指定用于打开的文件模式
    format : 用于生成日志消息的格式化字符串
    datefmt:用于输出日期和时间的格式化字符串
    level: 设置记录器的级别
    stream: 提供打开的文件,用于把日志消息发送到文件

  • format 日志的消息格式


    image.png
  • 内置处理器
    logging模块提供了一些处理器,可以通过各种方式处理日志消息。使用addHandler()方法将这些处理器添加给Logger对象。另外还可以为每个处理器配置它自己的筛选和级别。

    handlers.DatagramHandler(host,port):发送日志消息给位于制定host和port上的UDP服务器。
    handlers.FileHandler(filename):将日志消息写入文件filename。
    handlers.HTTPHandler(host, url):使用HTTP的GET或POST方法将日志消息上传到一台HTTP 服务器。
    handlers.RotatingFileHandler(filename):将日志消息写入文件filename。如果文件的大小超出maxBytes制定的值,那么它将被备份为filename1。

2.django中使用logging

  • 配置settings.py文件
    (1): 创建日志路径
# 创建日志的路径
LOG_PATH = os.path.join(BASE_DIR, 'log')
# 如果地址不存在,则自动创建log文件夹
if not os.path.join(LOG_PATH):
    os.mkdir(LOG_PATH)

(2)日志处理
version : 版本
disable_existing_loggers: 是否禁用loggger
formatters : 配置打印的日志格式
handlers:用来定义具体处理日志的方式,可以定义多种
loggers: 用来配置用那种handlers来处理日志,比如你同时需要输出日志到文件、控制台
filters: 用来对那些从 logger 传至 hadnler 的日志记录提供额外的控制

LOGGING = {
    # version只能为1,定义了配置文件的版本,当前版本号为1.0
    "version": 1,
    # True表示禁用logger
    "disable_existing_loggers": False,
    # 格式化
    'formatters': {
        'default': {
            'format': '%(levelno)s %(funcName) %(module)s %(asctime)s %(message)s '
        },
        'simple': {
            'format': '%(levelno)s %(module)s %(created)s %(message)s'
        }
    },

    'handlers': {
        'stu_handlers': {
            'level': 'DEBUG',
            # 日志文件指定为5M, 超过5m重新命名,然后写入新的日志文件
            'class': 'logging.handlers.RotatingFileHandler',
            # 指定文件大小
            'maxBytes': 5 * 1024,
            # 指定文件地址
            'filename': '%s/log.txt' % LOG_PATH,
            'formatter': 'default'
        },
        'uauth_handlers': {
            'level': 'DEBUG',
            # 日志文件指定为5M, 超过5m重新命名,然后写入新的日志文件
            'class': 'logging.handlers.RotatingFileHandler',
            # 指定文件大小
            'maxBytes': 5 * 1024 * 1024,
            # 指定文件地址
            'filename': '%s/uauth.txt' % LOG_PATH,
            'formatter': 'simple'
        }
    },
    'loggers': {
        'stu': {
            'handlers': ['stu_handlers'],
            'level': 'INFO'
        },
        'auth': {
            'handlers': ['uauth_handlers'],
            'level': 'INFO'
        }
    },

    'filters': {

        }
}
  • 应用日志处理
import logging
logger = logging.getLogger('stu')
def index(request):
    if request.method == 'GET':
        # 记录获取所有学生信息的日志
        stuinfos = StudentInfo.objects.all()
        logger.info('url: %s method: %s 获取学生信息成功' % (request.path, request.method))
        return render(request, 'index.html', {'stuinfos': stuinfos})
  • 结果


    image.png

相关文章

  • Django中的日志系统章

    Python日志系统 Django使用logging模块记录日志。Python的日志系统分为4块。分别是:logg...

  • django的日志系统

    摘要 日志在程序开发中是少不了的,通过日志我们可分析到错误在什么地方,有什么异常。在生产环境下有很大的用途。dja...

  • django中日志模块使用

    一、需求来源: 在django搭建的环境中,代码运行输出的日志需要相关模块做管理。 二、配置日志系统: Djang...

  • django 多进程下,日志写入错乱问题

    问题:使用django自带logging配置记录日志时发现,日志丢失与日志写入错乱 原因:django loggi...

  • Django 项目的日志系统

    前言 一个 Web 项目,无论是在开发调试的时候,还是上线为用户提供服务以后,都需要保留下一些运行当中必要的信息用...

  • Funboot开发:系统日志组件

    系统日志组件 目录 系统日志 使用MongoDb存储日志 系统日志 系统日志分为操作日志、错误日志、登录日志、数据...

  • Python笔记整理 - Django

    Django 系统 环境Python 3.6Django 1.8 参考资料[Django中文教程](https:/...

  • 【问答】Linux

    Linux系统日志在哪里看 Linux日志分为内核及系统日志、用户日志、应用日志;系统日志由rsyslog服务统一...

  • 2018-06-19 Django权限系统auth模块详解

    Django权限系统auth模块详解 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用...

  • Django-便捷的用户认证系统

    Django默认用户认证系统 Django自带用户认证系统 它处理用户账号、组、权限以及基于cookie的用户会话...

网友评论

    本文标题:django的日志系统

    本文链接:https://www.haomeiwen.com/subject/udhhdftx.html