Python-日志模块

目录

一、日志级别

二、日志配置

1、日志基本配置

2、日志配置字典(知道咋么改就可以)

3、日志的使用


一、日志级别

import logginglogging.debug('调试日志')
logging.info('消息日志')
logging.warning('警告日志')
logging.error('错误日志')
logging.critical('严重错误日志')

注:info 级别一下的日志不用输出,只打印Warning级别以上的日志(可以更改);

二、日志配置

1、日志基本配置

# 日志基本配置
logging.basicConfig(  # 默认编码方式gbk# 1、日志级别level=30,  # 用来控制输出级别,30对应的是warning# DEBUG:10# INFO:20# WARNING:30# ERROR:40# CRITICAL:50# 2、日志输出格式format='%(asctime)s %(name)s [%(pathname)s line:%(lineno)d] %(levelname)s %(message)s',# %(asctime)s 获取当前时间,# % (name)s 当前日志的名字# %(pathname)s 指的是哪一个文件产生的日志# %(lineno)d 指的是文件的哪一行代码产生的日志# %(levelname)s 指的是文本形式的日志等级# 3、asctime的时间格式datefmt='%Y %m %d %H:%M:%S',# 4、日志输出位置:终端/文件filename='user.log', # 不指定此配置,默认打印到终端
)

'''
%(name)s Logger的名字(getlogger时指定的名字)
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出日志的完整路径名
%(filename)s 调用日志输出日志的文件名
%(module)s 调用日志输出日志的模块名
%(funcName)s 调用日志输出日志的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间,默认格式是 “2022 07 30 22:15:53,394”
%(thread)d 线程ID,可能没有
%(threadName)s 线程名,可能没有
%(process)d 进程ID,可能没有
%(message)s 用户输出的消息
'''
'''
logging模块有三个比较重要的功能组件:
1、loggers 配置文件可定义一些输出日志的appname
2、handler 配置日志的分隔大小,输出位置,日志文件创建等
3、formatters 配置日志输出的格式
'''

2、日志配置字典(知道咋么改就可以)

(1)需要将字典放在项目的settings.py里面;(图片中Ctrl+Shift +-号缩放)

(2)解读

LOGGING_DIC = {'version': 1.0,  # 版本,根据个人修改'disable existing loggers': False,# 日志格式,格斯根据需求,自己更改或者命名'formatters': {'standard': {'format': '%(asctime)s %(threadName)s:%(thread)d [%(name)s] %(levelname)s [%(pathname)s:%(lineno)d] %(message)s','datefmt': '%Y %m %d %H:%M:%S',},'simple': {'format': '%(asctime)s [%(name)s] %(levelname)s %(message)s', 'datefmt': '%Y %m %d %H:%M:%S',},'test': {'format': '%(asctime)s %(message)s',},},'filters': {},  # 过滤器# 日志处理器'handlers': {'console WARNING handler': {'level': 'WARNING',  # 日志处理的级别限制'class': 'logging.StreamHandler',  # 输出到终端'formatter': 'simple'  # 日志格式},'file info handler': {'level': 'INFO','class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,日志轮转'filename': 'user.log','maxBytes': 1024 * 1024 * 10,  # 日志大小 10M'backupCount': 10, # 日志文件保存数量限制'encoding': 'utf 8','formatter': 'standard',},  # 保存到文件'file debug handler': {'level': 'DEBUG','class': 'logging.FileHandler',  # 保存到文件'filename': 'test.log',  # 日志存放的路径'encoding': 'utf 8',  # 日志文件的编码'formatter': 'test',},'file info_standard handler': {'level': 'INFO',  # 日志处理的级别限制'class': 'logging.handlers.RotatingFileHandler','filename': 'zx.log','maxBytes': 1024 * 1024 * 10,  # 日志大小 10M'backupCount': 10, # 日志文件保存数量限制'encoding': 'utf 8','formatter': 'standard'  # 日志格式},'': {'level': 'INFO',  # 日志处理的级别限制'class': 'logging.handlers.RotatingFileHandler','filename': 'zx.log','maxBytes': 1024 * 1024 * 10,  # 日志大小 10M'backupCount': 10, # 日志文件保存数量限制'encoding': 'utf 8','formatter': 'standard'  # 日志格式}, # 在主文件中调用setting中没有配置的handler,就会调用没有名字的},# 日志记录器'loggers': {'logger1': {  # 导入时logging.getLogger时使用的app name'handlers': ['console WARNING handler'],  # 日志分配到哪个handlers中'level': 'DEBUG',  # 日志记录的级别限制'propagate': False,# 默认为True,向上(更高级别的logger)传递,设置为False即可,否则会一份日志向上层层传递},'logger2': {'handlers': ['console WARNING handler', 'file debug handler'],'level': 'INFO','propagate': False,},'logger3': {'handlers': ['file info_standard handler', 'file debug handler'],'level': 'INFO','propagate': False,},}
}
# 注:进行日志轮转的日志文件,不能和其他handler共用,不然会导致文件被占用无法更名而报错!
# logger 负责产生不同级别的日志,然后将日志传给handler,handler将logger产生的日志进行处理

3、日志的使用

import settings
import logging.config  # 可以导入logginglogging.config.dictConfig(settings.LOGGING_DIC) # 将配置字典加载进来# logger1 = logging.getLogger('logger1')
# logger1.info('xxx登录了')
logger2 = logging.getLogger('logger2')
logger2.warning('xxx充值了5毛钱')

(1)可以根据 日志记录器Logger 和 日志处理器Handler 的level参数对日志进行分类;

比如:

   

(2)没有名字的'handler',运用在主文件中调用setting中没有配置的handler,就会调用没有名字的;

例:

'': {'level': 'INFO',  # 日志处理的级别限制'class': 'logging.handlers.RotatingFileHandler','filename': 'zx.log','maxBytes': 1024 * 1024 * 10,  # 日志大小 10M'backupCount': 10, # 日志文件保存数量限制'encoding': 'utf 8','formatter': 'standard'  # 日志格式
}, 

(3)日志的轮转,就是日志的大小超过一定大小,就重新命名;

'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,日志轮转
'filename': 'user.log',
'maxBytes': 1024 * 1024 * 10,  # 日志大小 10M
'backupCount': 10,  # 日志文件保存数量限制

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

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

相关文章

Linux驱动开发笔记(十三)Sysfs文件系统

文章目录 前言一、Sysfs1.1 Sysfs的引入1.2 Sysfs的目录结构1.2 Sysfs的目录详解1.2.1 devices1.2.2 bus1.2.3 class1.2.4 devices、bus、class目录之间的关系1.2.5 其他子目录 二、Sysfs使用2.1 核心数据结构2.2 相关函数2.2.1 kobject_create_and_add2.2.2 kobject_put()2.2.…

大模型自然语言生成自动驾驶可编辑仿真场景(其一 共十篇)

第一篇:LLM greater scene summarize 第二篇:LLM simulation Test effect 第三篇:LLM simulation driving scenario flow work 第四篇:LLM Algorithm flow description 第五篇:Configure the environment and back…

一键转换PDL至HTML,轻松驾驭文档格式,高效办公新纪元从此开启!

在信息爆炸的时代,文档格式繁多,如何高效处理这些文档成为了每个职场人士关注的焦点。现在,我们为您带来一款革命性的工具——一键转换PDL至HTML,让您轻松驾驭文档格式,开启高效办公新纪元! 首先&#xff0…

Electron快速入门(三):在(二)的基础上修改了一个文件夹做了个备忘录

Lingering Memories 诗绪萦怀 修改index.html <!--index.html--> <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP --><meta http…

opencv-python(十一)

图像加法 import numpy as np import cv2 img cv2.imread(jk.jpg) res cv2.add(img, img) cv2.imshow(Mypicture1,img) cv2.imshow(MyPicture2,res)cv2.waitKey(0) cv2.destroyAllWindows() res cv2.add(src1, src2, dstNone, maskNone, dtypeNone) src1&#xff1a;第一幅…

作为一名程序员,怎么才能写出简洁实用还漂亮的代码楼呢?这25个超惊艳的Python代码写法,你一定要学会!

前言 Python可以用于复杂的数据分析和Web开发项目&#xff0c;还能以极少的代码行数完成令人惊叹的任务。本文将分享25个简短的Python代码示例&#xff0c;用来展示Python编程语言的魅力和效率。 1.列表推导式 Python的列表推导式提供了一种优雅的方法来创建列表。 # 将一个…

以太坊==MetaMask获取测试币最新网址

估算分数https://community.infura.io/t/unable-to-receive-sepolia-eth-from-faucet/7715 Gitcoin Passport 水龙头地址&#xff0c;填入自己的测试地址 水龙头项目地址 GitHub - pk910/PoWFaucet: Modularized faucet for EVM chains with different protection methods (…

2023年JCR影响因子正式发布,点击查看能源与燃料领域期刊变化【持续更新02】

2024年6月20日&#xff0c;科睿唯安发布了2024年度《期刊引证报告》(Journal Citation Reports&#xff0c;JCR)&#xff0c;报告覆盖全面的高质量期刊资源&#xff0c;提供了丰富的数据、指标和分析。今年JCR的最大变化为&#xff1a;把属于不同数据库&#xff0c;但属于同一学…

储能电池竞争出海分析

锂电池的激烈竞争进一步蔓延到储能行业。为保市场份额和现金流稳定&#xff0c;不少储能电池企业都开始大幅度降低报价只求中标储能项目。 随着6月的储能电芯的最高限价和系统报价都已经贴近成本价&#xff0c;一二三线的储能电池厂商将要如何应对&#xff1f; 1、储能规模快速…

Centos Stream9 和Centos Stream10的下载网址

Index of /https://mirror.stream.centos.org/

“迷你剧场新体验:探索短剧小程序系统的魅力!“

在移动互联网的时代背景下&#xff0c;短视频和短剧已经成为人们娱乐消费的新宠。短剧小程序系统&#xff0c;以其独特的互动形式、便捷的观看体验和丰富的内容生态&#xff0c;为迷你剧场带来了全新的体验。接下来将探讨这个系统的魅力所在&#xff0c;以及它如何改变着人们的…

二维码美化,修改二维码颜色样式,添加logo,文字描述

在如今的社会&#xff0c;二维码已成为我们日常生活中不可或缺的一部分&#xff0c;无论是支付、访问网站、社交媒体互动&#xff0c;还是分享信息&#xff0c;二维码都扮演着重要角色。然而&#xff0c;标准的黑白二维码有时可能显得过于单调&#xff0c;缺乏吸引力。为了提升…

EasyRecovery数据恢复软件2024免费版下载

EasyRecovery数据恢复软件&#xff0c;是我在电脑使用过程中遇到的神器&#xff01;它不仅功能强大&#xff0c;操作简便&#xff0c;还帮我找回了丢失的重要文件。今天&#xff0c;我就来给大家分享一下我的使用体验和心得。 让我来介绍一下EasyRecovery的功能。这款软件可以恢…

你只是重新发现了一些东西

指北君关于另外一条思维路径的发现。 "自以为是"的顿悟时刻 有很多时候&#xff0c;我会"自以为是"的发现/发明一些东西。这种"自以为是"的时刻通常还带有一些骄傲自豪的情绪。这种感觉特别像古希腊博学家阿基米德 在苦思冥想如何测量不规则物体…

数据库管理-第210期 HaloDB-Oracle兼容性测试02(20240622)

数据库管理209期 2024-06-22 数据库管理-第210期 HaloDB-Oracle兼容性测试02&#xff08;20240622&#xff09;1 表增加列2 约束3 自增列4 虚拟列5 表注释6 truncat表总结 数据库管理-第210期 HaloDB-Oracle兼容性测试02&#xff08;20240622&#xff09; 作者&#xff1a;胖头…

一种简单的图像分析

简介 一种简单的边界分析&#xff0c;通过相邻的像素的灰度进行判断&#xff0c;计算出边界。 测试1 原图 结果 测试2 原图 结果 代码说明 主要的技术在makeTable过程中&#xff0c;这个过程主要执行了以下几步 计算每个像素的灰度计算相邻多个像素的最大灰度差统计灰度差…

每日一题——冒泡排序

C语言——冒泡排序 冒泡排序练习 前言&#xff1a;CSDN的小伙伴们&#xff0c;大家好&#xff01;今天我来给大家分享一种解题思想——冒泡排序。 冒泡排序 冒泡法的核心思想&#xff1a;两两相邻的元素进行比较 2.冒泡排序的算法描述如下。 (1)比较相邻的元素。如果第一 个比…

展讯-源码编译

1.硬件要求 编译主机要求&#xff0c;注意尽量不要使用虚拟机 CPU&#xff1a;Intel(R) Core(TM) i7-4790 CPU 3.60 GHz 内存&#xff1a;8G 硬盘&#xff1a;500G SSD Ubuntu 版本&#xff1a;Ubuntu 64-bit 14.04.5 LTS 这是最低版本要求&#xff0c;实际性能越高越好 2…

【机器学习 复习】 第1章 概述

一、概念 1.机器学习是一种通过先验信息来提升模型能力的方式。 即从数据中产生“模型”( model )的算法&#xff0c;然后对新的数据集进行预测。 2.数据集&#xff08;Dataset&#xff09;&#xff1a;所有数据的集合称为数据集。 训练集&#xff1a;用来训练出一个适合模…

wpfui:一个开源免费具有现代化设计趋势的WPF控件库

wpfui介绍 wpfui是一款开源免费&#xff08;MIT协议&#xff09;具有现代化设计趋势的WPF界面库。wpfui为wpf的界面开发提供了流畅的体验&#xff0c;提供了一个简单的方法&#xff0c;让使用WPF编写的应用程序跟上现代设计趋势。截止写这篇文章&#xff0c;该项目获得了6.7k …