2021-08-03-DJ-023 django日志配置与解析

2023-10-24 19:33

本文主要是介绍2021-08-03-DJ-023 django日志配置与解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

日志
官方 文档 对日志的描述

1.常见配置

#日志配置区,LOGGING
LOGGING={'version':1,'formatters':{'simple':{'format':'[%(asctime)s %(name)s] %(message)s','datefmt':'%Y-%m-%d %H:%M:%S'}},'handlers':{'out':{'class':'logging.StreamHandler','formatter':'simple','level':'DEBUG'},'file':{'class':'logging.FileHandler','formatter':'simple','level':'INFO','filename':'mylog.log'}},'loggers':{'django':{'handlers':['out','file'],'level':'DEBUG','propagate':True},'mylog':{'handlers':['file'],'level':'INFO','propagate':True},}
}

2.内容分析

2.1组成部分

LOGGING配置常有下面四个部分组成:
Formatters:格式化
Handlers:处理器
Loggers:记录器
Filters:过滤器

2.2详细介绍 上面的配置

LOGGING={ 日 志设置的标准名称
‘version’:1.0, 版本
‘formatters’:{ 一、 格式化部分
‘simple’:{ 一种格式的名称
‘format’:’[%(asctime)s %(name)s] %(message)s’, 输出格式,括号内是参数,%s是字符串格式
‘datefmt’:’%Y-%m-%d %H:%M:%S’ 日期格式
}
},
‘handlers’:{ 二、处理器部分
‘out’:{ 一个处理器的名称,名称 都可以自己编
‘class’:‘logging.StreamHandler’,
‘formatter’:‘simple’, 格式选simple
‘level’:‘DEBUG’ 日志处理的级别:DEBUG:排查故障时使用的低级别系统信息

    },'file':{                        一个处理器名称'class':'logging.FileHandler','formatter':'simple',                  格式选simple'level':'INFO',							日志处理的级别:INFO:一般的系统信息'filename':'mylog.log'              存储文件名}
},
'loggers':{                            三、记录器部分'django':{												一个记录器名字'handlers':['out','file'],						这个记录器包含的处理器列表'level':'DEBUG',								日志记录级别,等同于os.getenv('DJANGO_LOG_LEVEL', 'INFO'),'propagate':True                              传播},'mylog':{                                              一个记录器名字'handlers':['file'],                             这个记录器包含的处理器列表'level':'INFO',                                日志记录的级别'propagate':True                           传播},}

}

2.3日志级别

日志级别表示只有这个级别以上的消息系统才提示
日志级别有:
DEBUG:排查故障时使用的低级别系统信息
INFO:一般的系统信息
WARNING:描述系统发生了一些小问题的信息
ERROR:描述系统发生了大问题的信息
CRITICAL:描述系统发生严重问题的信息
禁用默认的日志配置,在settings中设置

LOGGING_CONFIG = None
或者在LOGGING中 加 disable_existing_loggers 键为 True

handlers 里面的class有哪些请参考:【Python基础】Python模块之Logging(四)——常用handlers的使用

propagate是传播, 是否让日志信息继续冒泡给其他的日志处理系统,子级向父级传播
对日志的参数介绍的比较好的一篇博客是这个Django中的日志详解。

3.框架中操作

自己引发日志 记录
配置好日志记录参数后在上节做的中间件里做这件事情

import logging
class LoginCheckMiddleware(MiddlewareMixin):def process_request(self,request):print('login_checkMiddleware,request',request.path,request.META['REMOTE_ADDR'])excludelist=['/main/login','/main/imgcode']if request.path not in excludelist:#验证 用户是否已经登录if not request.COOKIES.get('token'):ip=request.path,request.META['REMOTE_ADDR']path=request.get_raw_uri()msg='%s->%s'%(ip,path)logging.getLogger('mylog').warning(msg)return HttpResponseRedirect('/main/login')
            logging.getLogger('mylog').warning(msg)

这句话表示用mylog记录器,打印一个warning级别的消息,在这个记录器里面,是以文件的形式的,所以消息会在日志文件里记录

我们现在去浏览器中触发这个消息

在这里插入图片描述

里面的三条warning就是以我们自定义的方式触发的

这篇关于2021-08-03-DJ-023 django日志配置与解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/277311

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal