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

 一、文件的配置

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/873405.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云监控(华为) | 实训学习day4(10)

SpringBoot增删改的细节研究 一、Spring boot增的安全性 1.开启数据库的事务 SpringBoot中Service层有事务(保证操作成功) 两个用户操作,同时增加同一条数据(用户名,密码一致) 验证内容,开启…

MySQL:基础操作(增删查改)

目录 一、库的操作 创建数据库 查看数据库 显示创建语句 修改数据库 删除数据库 备份和恢复 二、表的操作 创建表 查看表结构 修改表 删除表 三、表的增删查改 新增数据 插入否则更新 插入查询的结果 查找数据 为查询结果指定别名 结果去重 where 条件 结…

【Jmeter】记录一次Jmeter实战测试

Jmeter实战 1、需求2、实现2.1、新建线程组2.2、导入参数2.3、新建HTTP请求2.4、添加监听器2.5、结果 1、需求 查询某个接口在高并发场景下的响应时间(loadtime),需求需要响应在50ms以内,接下来用Jmeter测试一下 Jmeter安装见文章《Jemeter安装教程&am…

极狐GitLab Git LFS(大文件存储)如何管理?

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…

解决xshell连接不上ubuntu首次安装的虚拟机问题

首次安装完虚拟机,主机和虚拟机之间互ping都没问题,但是xshell登不上去,基本上原因就是虚拟机没有安装ssh服务。 1、关闭防火墙 sudo ufw disable 2、开发22端口 sudo ufw allow 22 3、最后安装ssh sudo apt-get install openssh-serve…

日文医学文献pdf怎么翻译

翻译日文医学文献的PDF可以通过以下几个步骤进行: 1、提取文本: 如果PDF文档是扫描版或者图片格式,可以使用OCR(光学字符识别)软件提取文本。常用的OCR工具有Adobe Acrobat、ABBYY FineReader等。 如果PDF文档已经是…

多层全连接神经网络(四)---简单的前向网络

神经网络神经元概念部分有需要会单独再讲 激活函数 1. Sigmoid Sigmoid 非线性激活函数的数学表达式是 σ(z) ,其图形如图 3.14所示。目前我们知道 Sigmoid 激活函数是将一个实数输入转化到 0~1 之间的输出,具体来说也就是将越大的负数转化到越靠近 0…

C/C++蓝屏整人代码

文章目录 📒程序效果 📒具体步骤 1.隐藏任务栏 2.调整cmd窗口大小 3.调整cmd窗口屏幕颜色 4.完整代码 📒代码详解 🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主&a…

笔记 7 :linux 011 注释,函 bread () , get_hash_table () , find_buffer ()

(57)接着介绍另一个读盘块的函数 bread(): (58)因为 函数 get_blk()大量调用了其它函数,一版面列举不完,故对其调用的函数先行注释:ge…

【Linux】服务器安装SSH

【Linux】服务器安装SSH 【创作不易,求点赞关注收藏】😀 在Ubuntu服务器上安装并配置SSH非常简单。你可以按照以下步骤进行操作: 1、更新软件包列表 sudo apt-get update2、安装OpenSSH服务器: sudo apt-get install openssh-server3、启…

鲁大师2024半年报电动车智能排行:九号继续霸榜,极核本田乘胜追击

鲁大师2024年半年报正式发布,本次季报包含电动车智能排行,测试的车型为市面上主流品牌的主流车型,共计30款,全部按照评测维度更广、更专业的鲁大师电动车智慧评测2.0进行评分,测试的成绩均来自于鲁大师智慧硬件实验室。…

口袋奇兵游戏攻略:云手机辅助战锤入侵策略指南!

在《口袋奇兵》中,战锤入侵是一个重要的游戏环节,了解如何有效地参与战锤入侵能够帮助玩家获取更多的资源和提升自己的战力。本文将详细介绍战锤入侵的策略和技巧,帮助玩家在战锤入侵活动中取得更好的成绩。除了找到强力的游戏辅助&#xff0…

粉尘传感器助力面粉厂安全生产

在面粉加工行业中,粉尘问题一直是一个不容忽视的难题。从原料的破碎、研磨到成品的包装,整个生产流程中都会伴随着大量的粉尘产生。这些粉尘不仅影响生产环境,更对工作人员的健康、设备的安全运行以及环境保护构成严重威胁。因此,…

食堂采购系统开发:从需求分析到上线实施的完整指南

本篇文章,笔者将详细介绍食堂采购系统从需求分析到上线实施的完整过程,旨在为开发团队和管理者提供一个系统化的指南。 一、需求分析 1.用户需求 常见的需求包括: -采购计划管理 -供应商管理 -库存管理 -成本控制 -报表生成 2.系统功…

PyTorch使用细节

model.eval() :让BatchNorm、Dropout等失效; with torch.no_grad() : 不再缓存activation,节省显存; 这是矩阵乘法: y1 tensor tensor.T y2 tensor.matmul(tensor.T)y3 torch.rand_like(y1) torch.matm…

初步认识HTML

目录 一. HTML概述 二. HTML基本语法 1. HTML的基本框架 2. 标签 2.1 标签分类 2.2 标签属性 三. 基本常用标签 3.1 标题标签 3.2 段落标签 3.3 换行标签 3.4 列表 3.5 超链接 四. 特殊符号转义 五. 表格 5.1 表格的基本构成标签 5.2 表格的基本结构 5.3 表格属…

js reduce 的别样用法

let mergedItems list.reduce((accumulator, currentItem) > {let existingItem accumulator.find((item) > item.manObject_name currentItem.manObject_name);if (existingItem) {existingItem.laborCostHand currentItem.laborCostHand; //劳务费existingItem.wor…

增量预训练和微调的区别

文章目录 前言一、增量预训练和微调的区别二、代码示例1. 增量预训练示例2. 微调示例3. 代码的区别 三、数据格式1. 增量预训练2. 微调3. 示例4. 小结 四、数据量要求1. 指导原则2. 示例3. 实际操作中的考虑4. 小结 前言 增量预训练是一种在现有预训练模型的基础上&#xff0c…

有了这5个高效视频剪辑工具,你一定会爱上剪辑

如果你是个剪辑新手,不知道如何挑选剪辑视频的工具,又或者是自己目前使用的剪辑工具不理想,想寻找新的剪辑软件;那就请你看看这篇文章,这里介绍的5款剪辑软件都是专业,简单,又高效的剪辑工具。 …

顺序表<数据结构 C版>

目录 线性表 顺序表 动态顺序表类型 初始化 销毁 打印 检查空间是否充足(扩容) 尾部插入 头部插入 尾部删除 头部删除 指定位置插入 指定位置删除 查找数据 线性表 线性表是n个相同特性的数据元素组成的有限序列,其是一种广泛运…