python常识系列08-->logging模块基础入门

Python标准模块logging 开发Python, 一直以来都是使用自己编写的logging模块. 比较土...... 今天发现python的标准模块的这个功能做的挺好, 记录一下, 以后使用模块来进行logging. 对于这个模块的介绍网上也很多, 我也不用自己写了, 比较好的如下, http://crazier9527.iteye.com/blog/290018    Python的标准logging模块 http://blog.endlesscode.com/2010/06/03/python-logging-module/   P 阅读详情

前言
努力从今天开始,成功从“零”开始。
一、logging模块是什么?
是Python内置的标准模块,主要用于输出运行日志

二、日志是什么?
日志是代码的必要组成部分
记录日志能显示程序当前运行状态
出问题后定位当时问题
对日志记录的数据挖掘进行统计和分析(比如 **地区登录APP人数较多等)
三、python日志级别
DEBUG:调试信息
INFO:有用的信息
WARNING:警告信息 (默认日志级别)
ERROR:错误信息
CRITICAL:严重错误信息
NOTSET:非级别,表示不设置,按照父logger级别来过滤日志

日志级别关系:

NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL

备注:如果把log的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出。也就是说,日志级别越高,打印的日志越不详细。

四、logging模块实战
4.1 logging模块基础代码


import logging

logging.debug('-----调试信息[debug]-----')
logging.info('-----有用的信息[info]-----')
logging.warning('-----警告信息[warning]-----')
logging.error('-----错误信息[error]-----')
logging.critical('-----严重错误信息[critical]-----')

    

        

    


由于没有设置日志级别,默认WARNING级别,上述代码输出如下:

WARNING:root:-----警告信息[warning]-----
ERROR:root:-----错误信息[error]-----
CRITICAL:root:-----严重错误信息[critical]-----

Process finished with exit code 0 
4.2 自定义日志级别
 
import logging

logging.basicConfig(level=logging.DEBUG)    #设置日志级别为DEBUG,注意要大写
logging.debug('-----调试信息[debug]-----')
logging.info('-----有用的信息[info]-----')
logging.warning('-----警告信息[warning]-----')
logging.error('-----错误信息[error]-----')
logging.critical('-----严重错误信息[critical]-----')

4.3 自定义日志显示格式
 
import logging

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
logging.debug('-----调试信息[debug]-----')
logging.info('-----有用的信息[info]-----')
logging.warning('-----警告信息[warning]-----')
logging.error('-----错误信息[error]-----')
logging.critical('-----严重错误信息[critical]-----')

其中format是控制日志格式用的,具体格式包含:(ps:读者可以换到上面代码部分试试)
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息

4.4 自定义日志输出到文件
 
import logging

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
logging.debug('-----调试信息[debug]-----')
logging.info('-----有用的信息[info]-----')
logging.warning('-----警告信息[warning]-----')
logging.error('-----错误信息[error]-----')
logging.critical('-----严重错误信息[critical]-----')

其中上述代码中 filename 参数为日志文件配置

小结
如果没有接触过日志的朋友使用本篇入门非常不错
本篇中使用了 basicConfig() 这种方式去配置日志,其实还有多种方式配置(如配置文件配置、自定义logger对象配置等)

Python-logging 模块 通常我们会使用一个配置字典来定义日志。导入 logging 模块。定义两种日志输出格式。# 定义两种日志输出格式定义日志文件路径。# 定义日志文件所在目录# 定义日志文件名# 如果定义的日志文件所在目录不存在就创建一个# 日志文件完整路径配置字典。通常会放在配置文件中,比如项目 conf 目录下 settings 文件中。# 配置字典'version': 1, # 配置字典的版本。 阅读详情

相关推荐

Python常用模块 之 logging:日志模块

Python常用模块 之 logging:日志模块

孤寒者的博客 17万+

Python 关于logging.py的NOTSET 分类: pyt...

环境:python2.7 网上有文章说,日志的过滤级别设置为NOTSET,即意味着“输出所有信息”,但是我今天的测试结果却不同。 通过查看代码,发现NOTSET是logging的默认过滤级别,即在日志没有设定过滤级别时,默认为NOTSET。 而在logging打印日志时,过滤级别NOTSET会转换为WARNING。因此,今天我测试时设置为NOTSET,结果日志中打印的是WARN...

weixin_34410662的博客 261

Python基础语法08:内置模块

常见的Python内置模块: os: 系统操作模块 random: 随机数模块 time:时间模块 re:正则匹配模块 string:字符串模块 sys:系统文件模块模块 time:包含各种提供日期、时间功能的类和函数 datetime:时间处理模块 json模块:数据结构转化 logging模块:日志处理 requests模块:接口访问 晚上再继续更新 ...

若北辰 3361

【Python零基础快速入门系列 | 15】常用标准库os、sys、logging快速掌握

本文描述了python最常用的3个标准库:os、sys、logging。

机器未来的博客 1604

Python常用模块 之 datetime模块和logging模块实战 使用

Python常用模块 之 datetime模块和logging模块实战 使用

孤寒者的博客 3万+

STM32_USB复合设备开发实战:基于CubeMX插件简化HID与CDC集成

本文详细介绍了如何使用STM32CubeMX插件简化USB复合设备开发,特别是HID与CDC的集成。通过自动处理多设备描述符融合和端点资源分配,该插件显著降低了开发复杂度,帮助工程师快速实现键盘、鼠标和虚拟串口等复合功能,提升STM32 USB开发效率。

palm99的专栏 748

python的logging模块基础使用

python的logging模块的一些基础使用方法。

weixin_56777139的博客 1211

用ADS2023手把手仿真SKYWORKS SMA1234变容二极管:从Datasheet到S参数结果全流程

本文详细介绍了如何使用ADS2023仿真SKYWORKS SMA1234变容二极管的全流程,从Datasheet参数解析到S参数结果验证。通过等效电路建模、关键公式编写和仿真设置,帮助工程师掌握变容二极管在射频电路设计中的应用技巧,提升仿真精度和工程实践能力。

weixin_29233333的博客 502

python之logging模块

python之logging模块

weixin_39926295的博客 1646

从“Segmentation fault”到流畅运行:深入解析CARLA Engine crash与Signal 11报错排查指南

本文深入解析了CARLA仿真平台运行时遭遇的Engine crash与Signal 11(Segmentation fault)报错。文章指出,该错误的根本原因常与NVIDIA显卡驱动版本不兼容有关,并提供了从日志分析、常见方案试错到驱动安全降级的完整排查指南,帮助用户从崩溃走向流畅运行。

pca5navigator的博客 462

Dia 使用说明

简述 在linux上面能找到dia这个工具还是挺幸运的,因为之前画流程图总是使用ubuntu默认的word工具 在里面画图,感觉流程图使用起来麻烦,并且视觉效果真的不好看。 自从使用Dia后,感觉至少画起来流程图会变得越来越标准了。但是Dia也存在问题,就是使用的文档很少,使用中遇到为后,查起来比较费劲,但是至少问题不是很多,所以使用中遇到的几点问题我就记下来,和大家分享,加快大家的开发和文档整理能力。 我会按照遇到的问题来说,不存在使用的先后顺序。 1. Dia 去掉背景中的线条 首先去点那个大一点的蓝色

linan101的博客 4926

Python的logging模块

DEBUG: 详细信息,通常只在调试问题时使用。INFO: 确认一切按预期运行。WARNING: 指示可能出现的问题,但仍可继续运行。ERROR: 由于更严重的问题,某些功能无法执行。CRITICAL: 严重错误,程序可能无法继续运行。

KIKI3666的博客 2635

OpenSceneGraph编译、安装、开发环境

详细描述WIndows 10下使用Visual Studio 2019编译OpenSceneGraph 3.6.5的操作流程

国产CAx(CAD/CAE/CAM)软件研发 8771

Python基础学习之logging模块

创建一个文件处理器,将日志写入文件# 创建一个控制台处理器,将日志输出到控制台# 定义日志格式# 将处理器添加到日志器# 记录日志logger.info('这是一条自定义日志器的INFO级别日志')logger.warning('这是一条自定义日志器的WARNING级别日志')在这个例子中,我们创建了一个名为my_logger的自定义日志器,并将它的级别设置为INFO。然后,我们创建了一个文件处理器和一个控制台处理器,并将它们分别添加到日志器中。这样,我们就可以通过logger。

qq_45212655的博客 1726

Vscode远程免密连接Linux虚拟机,并配置C/C++运行环境

目前想要深入学习在Linux,也为了方便编写C/C++程序。Linux的环境里一般自带有c++的编译环境,如果没有安装gcc和g++等编译器也比较便利。但是在虚拟机里用vim编写C++程序又不得劲,因此打算使用vscode远程连接Linux虚拟机进行学习。为了防止自己以后还要再配置,重复踩坑,因此写下这篇博客用做记录。环境:windows11、VMware17、rocky linux9.1 ( 开源的CentOS9 )

m0_56779872的博客 8676

探索CompletableFuture:高效异步编程的利器

随着现代软件系统的复杂性和用户需求的多样化,异步编程成为了提升系统性能和响应速度的重要手段。在Java领域,CompletableFuture作为Java 8引入的新特性,提供了强大的异步编程能力,极大地简化了多线程和并发任务的处理。本文将深入探讨CompletableFuture的基本功能和使用方法,介绍如何利用其提升程序的并发性能和代码的可维护性。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

详解python的logging模块

使用python文件将输出信息写入到文件中

weixin_46713695的博客 2946

RK3588网卡出现丢包或者带宽不足的问题验证排查

注意除了有最大的TCP数据接收缓冲,还有/proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲可以调整,这里暂时没用到,针对具体需要可适当调整。比如把ethx接口中断从默认的cpu0迁移到其它cpu,例如将eth0中断234移到cpu7 (10是16进制, cpu0 =3588的cpu有8个核,4个A55(小核)+4个A76(大核),可以找到对应中断 将中断从默认cpu0核切到cpu7。tcp_rmem:单位是字节,接收缓存区大小,缓存从对端接收的数据,后续会被应用程序读取。

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 2027

Python logging 模块

Python logging 模块 给大家剖析下Python的logging模块。 logging模块是Python内置的一个强大易用的日志模块。简单到你只需要两行代码就能输出一些东西来:import logging logging.warning('Hi, I print something.')输出:WARNING:root:Hi, I print something.当然,我们可不能满足于

灰蓝 9171

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python 日志 logging 模块详解

文章目录1 日志相关概念1.1 日志的作用1.2 日志的等级1.3 logging 模块两种使用方式2 使用 logging 提供的模块级别的函数2.1 logging 模块定义常用函数2.2 使用方式1:简单配置2.3 使用方式2:使用 logging.basicConfig() 函数3 使用 Logging 日志系统的四大组件3.1 Logger 类3.2 Handler 类3.3 Formater 类3.4 Filter类(了解即可)3.5 日志流处理简要流程 1 日志相关概念 1.1 日志的作用

桑凯旋的博客 1919

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Python基础之logging日志模块封装

  引言   使用python做自动化测试的时候,对于关键信息输出和记录是必要的,方便调试和记录查找。python有个logging模块,我们简单对其进行封装。   设计流程   话不多说,流程图已经画,自己领会。   源码    """ 封装log方法 """ import os import time import logging.handlers # 日志打印等级...

像蚂蚁一样工作,像蝴蝶一样生活 3377

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python的logging模块

介绍python的logging模块

lishanlu136的博客 1318

Python-logging模块

一、日志级别 二、日志字典配置 三、模块使用

weixin_43988680的博客 3938

python logging模块

实际开发一个application,首先可以通过logging配置文件编写好这个application所对应的配置,可以生成一个根logger,如'PythonAPP',然后在主函数中通过fileConfig加载logging配置,接着在application的其他地方、不同的模块中,可以使用根logger的子logger,如'PythonAPP.Core','PythonAPP.Web'来进行log,而不需要反复的定义和配置各个模块的logger。通过YAML文件进行配置,比JSON看起来更加简介明了,

2401_86940371的博客 1821

Python Logging 模块详解

可以通过继承自定义日志格式化器,实现更复杂的格式需求。record.msg = f"自定义前缀:import logging class CustomFormatter(logging . Formatter) : def format(self , record) : record . msg = f"自定义前缀: {

weixin_43580791的博客 1104

Python入门:常用模块—logging模块

12。

liudefang的专栏 1161
上一篇: python基础操作——正则表达式
下一篇: APP性能测试_启动时间
Meryoufdd
博客等级 码龄5年 13粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值