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类的多重继承问题深入分析

    Python类的多重继承问题深入分析

    昨天在Python类的多重继承那里纠结了好久,咨询了不少高手之后,才完全搞明白,现在把类的特性整理下,供以后参考,也给有需要的小伙伴们参考下
    2014-11-11
  • python实现Decorator模式实例代码

    python实现Decorator模式实例代码

    这篇文章主要介绍了python实现Decorator模式实例代码,简单介绍了装饰器的含义和语法,分享了相关实例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Python实现采用进度条实时显示处理进度的方法

    Python实现采用进度条实时显示处理进度的方法

    这篇文章主要介绍了Python实现采用进度条实时显示处理进度的方法,涉及Python数学运算结合时间函数显示进度效果的相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • Pycharm和Idea支持的vim插件的方法

    Pycharm和Idea支持的vim插件的方法

    这篇文章主要介绍了Pycharm和Idea支持的vim插件的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Python的deque双端队列详解

    Python的deque双端队列详解

    这篇文章主要介绍了Python的deque双端队列详解,deque(双端队列)是一种数据结构,允许使用O(1)时间复杂度从两端添加和删除元素, Python的deque类实现了此数据结构,需要的朋友可以参考下
    2023-09-09
  • 对python3中的RE(正则表达式)-详细总结

    对python3中的RE(正则表达式)-详细总结

    今天小编就为大家分享一篇对python3中的RE(正则表达式)-详细总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python+OpenCV感兴趣区域ROI提取方法

    Python+OpenCV感兴趣区域ROI提取方法

    今天小编就为大家分享一篇Python+OpenCV感兴趣区域ROI提取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Django设置Postgresql的操作

    Django设置Postgresql的操作

    这篇文章主要介绍了Django设置Postgresql的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 一文详解Python中生成器的原理与使用

    一文详解Python中生成器的原理与使用

    生成器表达式本质上就是一个迭代器,是定义迭代器的一种方式,是允许自定义逻辑的迭代器。本文将详细讲解一下Python中生成器的原理与使用,需要的可以参考一下
    2022-05-05
  • Python采集C站高校信息实战示例

    Python采集C站高校信息实战示例

    这篇文章主要为大家介绍了Python采集C站高校信息实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论