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, 只有当日志消息级别大于等于设置好的日志级别,日志消息才会被记录

总结

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

相关文章

  • 以tensorflow库为例讲解Pycharm中如何更新第三方库

    以tensorflow库为例讲解Pycharm中如何更新第三方库

    这篇文章主要介绍了以tensorflow库为例讲解Pycharm中如何更新第三方库,文章介绍有详细流程,需要的小伙伴可以参考一下,希望对你的学习工作有所帮助
    2022-03-03
  • Python IDLE或shell中切换路径的操作

    Python IDLE或shell中切换路径的操作

    这篇文章主要介绍了Python IDLE或shell中切换路径的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • ansible-playbook实现自动部署KVM及安装python3的详细教程

    ansible-playbook实现自动部署KVM及安装python3的详细教程

    这篇文章主要介绍了ansible-playbook实现自动部署KVM及安装python3的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 浅谈Python数学建模之整数规划

    浅谈Python数学建模之整数规划

    整数规划并不一定是线性规划问题的变量取整限制,对于二次规划、非线性规划问题也有变量取整限制而引出的整数规划。但在数学建模问题中所说的整数规划,通常是指整数线性规划。整数规划与线性规划的差别只是变量的整数约束。选择简单通用的编程方案,让求解器去处理吧
    2021-06-06
  • Python实现特定场景去除高光算法详解

    Python实现特定场景去除高光算法详解

    这篇文章主要介绍了如何利用Python+OpenCV实现特定场景去除高光算法,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2021-12-12
  • Django models filter筛选条件详解

    Django models filter筛选条件详解

    这篇文章主要介绍了Django models filter筛选条件详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python使用代理ip访问网站的实例

    python使用代理ip访问网站的实例

    今天小编就为大家分享一篇python使用代理ip访问网站的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python连接mongodb集群方法详解

    python连接mongodb集群方法详解

    这篇文章主要介绍了python连接mongo集群方法详解,需要的朋友可以参考下
    2020-02-02
  • PyTorch搭建LSTM实现多变量多步长时序负荷预测

    PyTorch搭建LSTM实现多变量多步长时序负荷预测

    这篇文章主要为大家介绍了PyTorch搭建LSTM实现多变量多步长时序负荷预测,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 基于Python实现图片主题色的提取

    基于Python实现图片主题色的提取

    在 Groove 音乐中,当我们改变歌曲时,底部播放栏的颜色会随专辑封面而变,这就是提取了主题色。本文将利用Python实现图片主题色的提取,感兴趣的可以了解一下
    2022-03-03

最新评论