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

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达