django中日志模块logging的配置和使用方式

 更新时间:2025年01月20日 09:08:03   作者:_BooI  
文章主要介绍了如何在Django项目的`settings.py`文件中配置日志记录,并使用日志模块记录不同级别的日志,日志级别包括DEBUG、INFO、WARNING、ERROR和CRITICAL,级别越高,记录的日志越详细,通过配置和使用日志记录器,可以更好地排查和监控系统问题

一、文件的配置

settings.py文件中添加LOGGING块的配置,配置如下:

# 日志记录
LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,  # 用于确定在应用新的日志配置时是否禁用之前配置的日志器

    # 格式器
    "formatters": {
        "verbose": {  # 输出日志级别名称、日志信息,以及生成日志信息的时间、进程、线程和模块。format格式化输出
            "format": "{levelname} {asctime} {module} {process:d} {thread:d} {message}",
            "style": "{",
        },
        "simple": {  # 输出日志级别名称和日志信息。
            "format": "{levelname} {message}",
            "style": "{",
        },
    },

    # 过滤器
    "filters": {
        "require_debug_true": {
            "()": "django.utils.log.RequireDebugTrue",  # 当DEBUG为True时,传递记录。
        },
    },

    # 处理器
    "handlers": {
        "console": {  # 输出到终端
            "level": "INFO",  # 日志级别
            "filters": ["require_debug_true"],  # 使用的过滤器,上边已经定义
            "class": "logging.StreamHandler",  # 用于将日志消息发送到一个流,通常是一个输出流,比如控制台(标准输出)
            "formatter": "simple",  # 格式器,上边有定义
        },
        "file": {  # 输出到文件
            "level": "INFO",  # 日志级别
            "class": "logging.handlers.RotatingFileHandler",  # 将日志输出到一个文件中
            "filename": os.path.join(BASE_DIR, 'logs/mall.log'),  # 日志输出的文件, os.path.join用来拼接路径
            "maxBytes": 300 * 1024 * 1024,  # 一个文件300M
            "backupCount": 10,  # 备份10个文件
            "formatter": "verbose",  # 格式器
        },
    },
    "loggers": {  # 日志器
        "django": {  # 创建的日志记录器
            "handlers": ["console", 'file'],  # 处理方式:在终端输出、输出到文件
            "propagate": True,  # 日志没有被处理,日志消息将向上传递给上级记录器
            'level': 'INFO',  # 日志输出最低级别,低于这个将不会输出
        },
    },
}

二、记录器的使用

1、导入日志模块

import logging

2、创建日志记录器

'django'在settings文件中已创建,可以自行创建

logger=logging.getLogger('django')

3、调用方法保存日志

logger.error("文件不存在")
logger.info("正常访问")
logger.warning('redis缓存空间不足')
logger.debug("1111")

具体的代码

4、访问结果

只有级别大于等于INFO的日志记录才显示

终端中显示:

日志文件中显示

三、日志级别介绍

  • DEBUG:排查故障时使用的低级别系统信息
  • INFO:一般的系统信息
  • WARNING:描述系统发生了一些小问题的信息
  • ERROR:描述系统发生了大问题的信息
  • CRITICAL:描述系统发生严重问题的信息
  • 日志级别:CRITICAL > ERROR > WARNING > INFO > DEBUG, 只有当日志消息级别大于等于设置好的日志级别,日志消息才会被记录

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python 5个顶级异步框架推荐

    python 5个顶级异步框架推荐

    这篇文章主要介绍了python5个顶级的异步框架,帮助大家更好的利用python进行web开发,感兴趣的朋友可以了解下
    2020-09-09
  • 对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    今天小编就为大家分享一篇对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Django 中间键和上下文处理器的使用

    Django 中间键和上下文处理器的使用

    这篇文章主要介绍了Django 中间键和上下文处理器的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • python 基于selenium实现鼠标拖拽功能

    python 基于selenium实现鼠标拖拽功能

    这篇文章主要介绍了python 基于selenium实现鼠标拖拽功能的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • 总结Python图形用户界面和游戏开发知识点

    总结Python图形用户界面和游戏开发知识点

    在本篇文章里小编给大家整理了关于Python图形用户界面和游戏开发知识点以及实例代码,需要的朋友们学习下。
    2019-05-05
  • Python 列表映射后的平均值

    Python 列表映射后的平均值

    这篇文章主要介绍了Python 列表映射后的平均值,下面文章将围绕Python 列表映射后的平均值得相关资料展开详细内容,需要的朋友可以参考一下
    2021-11-11
  • Python中的set可变集合与frozenset不可变集合的终极指南

    Python中的set可变集合与frozenset不可变集合的终极指南

    这篇文章主要为大家详细介绍了Python中set与frozenset的区别与应用,set是可变集合,支持增删元素和自动去重,frozenset是不可变集合,下面小编就来和大家详细介绍一下吧
    2026-02-02
  • python实现换位加密算法的示例

    python实现换位加密算法的示例

    今天小编就为大家分享一篇python实现换位加密算法的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 彻底解决pip下载pytorch慢的问题方法

    彻底解决pip下载pytorch慢的问题方法

    这篇文章主要介绍了彻底解决pip下载pytorch慢的问题方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Ubuntu下Python2与Python3的共存问题

    Ubuntu下Python2与Python3的共存问题

    Linux系统一般自带Python,有时候又自己下载了Python,因此有可能Python2和Python3同时存在。那么当我们在Terminal键入python的时候,会调出哪个Python呢?本文即解决这个问题
    2018-10-10

最新评论