python logging日志打印过程解析
作者:Mr.zou 时间:2023-11-03 13:04:09
一、 基础使用
1.1 logging使用场景
日志是什么?这个不用多解释。百分之九十的程序都需要提供日志功能。Python内置的logging模块,为我们提供了现成的高效好用的日志解决方案。但是,不是所有的场景都需要使用logging模块,下面是Python官方推荐的使用方法:
任务场景 | 最佳工具 |
---|---|
普通情况下,在控制台显示输出 | print() |
报告正常程序操作过程中发生的事件 | logging.info()(或者更详细的logging.debug()) |
发出有关特定事件的警告 | warnings.warn()或者logging.warning() |
报告错误 | 弹出异常 |
在不引发异常的情况下报告错误 | logging.error(), logging.exception()或者logging.critical() |
logging模块定义了下表所示的日志级别,按事件严重程度由低到高排列(注意是全部大写!因为它们是常量。):
级别 | 级别数值 | 使用时机 |
---|---|---|
DEBUG | 10 | 详细信息,常用于调试。 |
INFO | 20 | 程序正常运行过程中产生的一些信息。 |
WARNING | 30 | 警告用户,虽然程序还在正常工作,但有可能发生错误。 |
ERROR | 40 | 由于更严重的问题,程序已不能执行一些功能了。 |
CRITICAL | 50 | 严重错误,程序已不能继续运行。 |
默认级别是WARNING,表示只有WARING和比WARNING更严重的事件才会被记录到日志内,低级别的信息会被忽略。因此,默认情况下,DEBUG和INFO会被忽略,WARING、ERROR和CRITICAL会被记录。
有多种方法用来处理被跟踪的事件。最简单的方法就是把它们打印到终端控制台上。或者将它们写入一个磁盘文件内。
1.2 简单范例
在什么都不配置和设定的情况下,logging会简单地将日志打印在显示器上,如下例所示:
import logging
logging.warning('Watch out!') # 消息会被打印到控制台上
logging.info('I told you so') # 这行不会被打印,因为级别低于默认级别
如果,将上面的代码放在一个脚本里并运行,结果是:
WARNING:root:Watch out!
1.3 高级使用
import logging
#创建logger记录器
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
#创建一个控制台处理器,并将日志级别设置为debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
#创建formatter格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
#将formatter 添加到ch处理器
ch.setFormatter(formatter)
#将ch添加到logger
logger.addHandler(ch)
#然后就可以开始使用了
# logger.debug('debug message')
#logger.info('info message')
# logger.warning('warn message')
# logger.error('error message')
# logger.critical('critical message')
def Logss():
#要打印的信息
a = "3"
logger.info(a)
Logss()
来源:https://www.cnblogs.com/zoulixiang/p/11713181.html
标签:python,logging,日志,打印
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
关于Typora中latex的用法与常用语法
2022-08-01 18:02:02
![](https://img.aspxhome.com/file/2023/3/132363_0s.png)
字符集和字符编码(Charset & Encoding)
2023-08-24 16:37:44
![](https://img.aspxhome.com/file/2023/0/109530_0s.png)
springboot连接不同数据库的写法详解
2024-01-26 21:35:28
利用Python抢回在蚂蚁森林逝去的能量(实现代码)
2022-07-01 15:15:39
![](https://img.aspxhome.com/file/2023/6/90646_0s.jpg)
安全校验Session验证码并避免绕开验证码攻击
2022-06-30 20:15:41
Python对HTML转义字符进行反转义的实现方法
2022-07-27 08:44:34
![](https://img.aspxhome.com/file/2023/6/103286_0s.jpg)
Django 后台获取文件列表 InMemoryUploadedFile的例子
2021-09-25 11:19:38
Python import与from import使用和区别解读
2021-06-22 08:51:02
使用Python进行数独求解详解(一)
2023-12-25 09:39:20
![](https://img.aspxhome.com/file/2023/5/130945_0s.jpg)
python 特殊属性及方法详细解析
2023-04-23 10:52:20
![](https://img.aspxhome.com/file/2023/8/134838_0s.png)
Python中强大的命令行库click入门教程
2023-05-01 04:24:09
Go开源项目分布式唯一ID生成系统
2024-02-14 22:08:15
![](https://img.aspxhome.com/file/2023/3/107363_0s.png)
python实现自动发送邮件发送多人、群发、多附件的示例
2023-01-13 22:24:32
![](https://img.aspxhome.com/file/2023/5/107215_0s.jpg)
python 获取当前目录下的文件目录和文件名实例代码详解
2022-07-21 21:31:25
python检测服务器端口代码实例
2023-07-07 06:34:14
死锁问题详解
2023-08-20 06:02:47
![](https://img.aspxhome.com/file/2023/9/131859_0s.png)
GOLANG使用Context实现传值、超时和取消的方法
2024-05-22 10:13:13
非常不错的SQL语句学习手册实例版第1/3页
2024-01-25 23:31:01
![](https://img.aspxhome.com/file/2023/6/113576_0s.gif)
解决pytorch 数据类型报错的问题
2022-12-22 08:55:04
详解JavaScript函数callee、call、apply的区别
2024-05-11 10:23:21
![](https://img.aspxhome.com/file/2023/5/125485_0s.png)