美文网首页Python/Go
Django的logging日志

Django的logging日志

作者: kris_lp | 来源:发表于2018-05-12 17:41 被阅读0次

logging模块为应用程序提供了灵活的手段记录事件、错误、警告和调试信息。通过日志我们可以分析到错误在什么地方,有什么异常。

一、logging概述

1.日志四个组件

a.loggers

用来配置用哪种handlers来处理日志。

b.filters

过滤loggers传递给handlers的信息,加一些处理控制

c.handlers

用来处理信息

d.formatters

格式化,配置打印日志格式,即将我们需要保存到日志文件中的信息统一格式化

2.日志记录错误等级:

CRITICAL>ERROR>WARNING>INFO>DEBUG

a.CRITICAL:重大错误
b.ERROR:系统里有错误
c.WARNING:警告
d.INFO:正常打印日志
e.DEBUG:调试信息

3.format日志消息格式

QQ图片20180503154235.jpg

4.记录器

记录器负责管理日志消息的默认行为,包括日志记录级别、输出目标位置、消息格式以及其它基本细节。

二、在django中实现日志功能

1.配置logging

在django中如何处理日志呢?django利用的是Python提供的logging模块,但django中要用logging,还得有一定的配置规则,需要在setting中设置。

a.配置路径,创建log文件夹
# 创建日志的路径
LOG_PATH = os.path.join(BASE_DIR, 'log')
# 如果地址不存在,则会自动创建log文件夹
if not os.path.isdir(LOG_PATH):
    os.mkdir(LOG_PATH)
b.配置四个组件
LOGGING = {
    # version 值只能为1
    'version': 1,
    # True 表示禁用loggers
    'disable_existing_loggers': False,

    # < 格式化 >
    'formatters': {
        # 可以设置多种格式,根据需要选择保存的格式
        'default': {
            'format': '%(levelname)s %(funcName)s %(module)s %(asctime)s %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(module)s %(asctime)s %(message)s'
        }
    },

    # < 处理信息 >
    'handlers':{
        'stu_handlers': {
            'level': 'DEBUG',
            # 指定日志文件大小,若超过指定的文件大小,会再生成一个新的日志文件保存日志信息
            'class': 'logging.handlers.RotatingFileHandler',
            # 指定文件大小
            # 1M=1024kb 1kb=1024b
            'maxBytes': 5 * 1024 * 1024,
            # 文件地址
            'filename': '%s/log.txt' % LOG_PATH,
            # 指定保存格式
            'formatter': 'default'
        },
        'uauth_handlers': {
            'level': 'DEBUG',
            # 若日志超过指定文件的大小,会再生成一个新的日志文件保存日志信息
            'class': 'logging.handlers.RotatingFileHandler',
            # 指定文件大小
            # 1M=1024kb 1kb=1024b
            'maxBytes': 5 * 1024 * 1024,
            # 文件地址
            'filename': '%s/uauth_log.txt' % LOG_PATH,
            # 指定保存格式
            'formatter': 'simple'
        }
    },


    'loggers': {
        'stu': {
            'handlers': ['stu_handlers'],
            'level': 'INFO'
        },
        'auth': {
            'handlers': ['uauth_handlers'],
            'level': 'INFO'
        }
    },

    'filters': {
        
    }
}

实例1

获取学生信息时,记录log。
生成指定格式日志文件的逻辑过程:
stu指定handler:stu_handlers
stu_handlers指定的保存文件filename:log.txt,保存格式formatter是default。

import logging

# 指定所用的logger
logger = logging.getLogger('stu')


def index(request):

    if request.method == 'GET':
        stus = Student.objects.all()
        logger.info('url:%s method:%s 获取学生信息成功'% (request.path, request.method))
        return render(request, 'index.html', {'stus': stus})

保存到日志中的信息:


image.png

信息中的 INFO 表示调用logger类时的级别。


image.png

相关文章

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

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

  • Django中的日志系统章

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

  • Django的logging日志

    logging模块为应用程序提供了灵活的手段记录事件、错误、警告和调试信息。通过日志我们可以分析到错误在什么地方,...

  • logging

    Menu logging定义 logging - basicConfig logging定义 日志模块 loggi...

  • appium自动化测试日志收集-logging

    关于日志级别: logging对象和filehandler都可以设置日志级别,logging设置的日志级别是控制台...

  • logging模块

    (一)什么是logging模块? logging是Python内置的日志模块,用于生成程序的日志 (二...

  • Python39_日志处理

    logging模块 日志基础 日志级别(从低到高): logging.NOTSET:不设置 loging.debu...

  • python logging模块应用详解

    python的日志模块,logging。 首先介绍日志的级别:日志的严重程度 logging中包含了四个主要的类:...

  • 日志框架

    日志门面 Apache Commons Logging (之前叫 Jakarta Commons Logging,...

  • springboot通过java -jar启动

    命令参数 00x0 日志配置: 默认日志:使用logging.path、logging.file 参数来指定日志输...

网友评论

    本文标题:Django的logging日志

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