• Django 日志


    logging 模块

      Django的日志使用了python的lohhing模块,使用时需要在settings.py中配置。

    logging 模块由四部分组成

      记录器

        记录器的作用是记录日志级别<日志级别描述的是程序运行详细消息>,Python定义了几种级别:

          INFO:  一般信息

          WARNING:  发生过的小问题

          ERROR:  发生过的主要问题

          DEBUG:  调试的地基系统讯息

      处理器

        处理器是确定记录器里的每条讯息的发生情况,做日志描述;记录器有很多处理器且每个处理器具有不同的日志级别

        所以,可以根据日志的严重性来提供不同形式的通知

      过滤器

        过滤器就是对日志记录从记录器到处理器的控制程序,一般来说,所有的额日志讯息都会满足,个人也可以添加删选调节实施过滤

      格式化程序

        日志记录<说到日志就联想到文本> 最后 日志记录要以文本的形式体现,格式化程序描述此日志记录的准确格式

        格式化程序经常由含有LogRecord属性的Python格式化字符串组成。

      举个例子:

      

    LOG_PATH = 'xx/xx/'
    LOGGING = {
        'version': 1,   #定义了配置文件的版本
        'disable_existing_loggers': False,  ## True表示禁用logger
        # 格式化
        'formatters': {
            'default': {
                'format': '%(levelname)s %(asctime)s %(module)s %(funcName)s %(msecs)s %(message)s'
                },
            'simple': {
                'format': '%(levelname)s %(message)s'
                },
            },
         # 处理日志的方式
        'handlers': {
            'v_handlers': {
                # 级别
                'level': 'DEBUG',
                # 存储方式
                "class": 'logging.handlers.RotatingFileHandler',
                # 日志文件大小
                'maxBytes': 5 * 1024,
                'encoding': 'utf8',
                # 日志文件路径
                'filename': '{}salary_all.log'.format(LOG_PATH),
                # 格式化方式
                'formatter': 'default',
                },
            'error': {
                'level': "ERROR",
                'class': 'logging.handlers.RotatingFileHandler',
                'maxBytes': 5 * 1024,
                'encoding': 'utf8',
                'filename': '{}salary_error.log'.format(LOG_PATH),
                'formatter': 'simple'
                }
            },
         # 配置日志的处理方式
        'loggers': {
            'django': {
                'handlers': ['v_handlers'],
                'propagate': True,
                },
            'django.request': {
                'handlers': ['error'],
                'level': 'ERROR',
                'propagate': True
                }
    
            },
         # 过滤器
        'filters': {
    
            }
        }




    logging中format的使用

    format解释
    %(levelno)s 日志的级别数字形式
    %(levelname)s 日志级别的名称
    %(pathname)s 当前执行程序的路径
    %(filename)s 当前执行程序名
    %(funcName)s* 当前的函数
    %(lineno)d 记录日志的当前行号
    %(asctime)s 日期时间
    %(msecs)s 毫秒级的时间
    %(thread)d 线程ID
    %(threadName)s 线程名称
    %(process)d 进程ID
    %(message)s 记录的日志信息

    end.........

  • 相关阅读:
    Nginx 对访问量的控制
    Shell入门
    小程序如何处理键盘覆盖输入框
    移动端适配之二:visual viewport、layout viewport和ideal viewport介绍
    javascript-对象
    bind函数作用、应用场景以及模拟实现
    「面试题」如何实现一个圣杯布局?
    一款轮播组件的诞生
    超火js库: Lodash API例子
    js 中的 number 为何很怪异
  • 原文地址:https://www.cnblogs.com/xiaolizikj/p/11683239.html
Copyright © 2020-2023  润新知