python logging日志打印过程解析
作者:Mr.zou 发布时间:2023-11-03 13:04:09
标签:python,logging,日志,打印
一、 基础使用
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
0
投稿
猜你喜欢
- 本文实例讲述了python类和继承定义与用法。分享给大家供大家参考。具体如下:class Employee: passlee =
- 其实canvas本身很简单,就是去学习它的API,多看实例,多自己动手练习,多总结。但是canvas的API实在是有点多,对于初学者来说,可
- 1. *表示匹配任意多个字符 \d*表示匹配任意多个数字字符import retext = "
- 显示索引和隐式索引import pandas as pddf = pd.DataFrame({'姓名':['张三
- 本文实例讲述了python实现文件快照加密保护的方法。分享给大家供大家参考。具体如下:这段代码可以对指定的目录进行扫描,包含子目录,对指定扩
- Beautiful Soup是一种Python的解析库,主要用于解析和处理HTML/XML内容。它是基于Python的标准库和第三方库的结合
- Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进
- 什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为
- 一般来说,我们为了得到更完整的结果,我们需要从两个或更多的表中获取结果,我一般都是用select xxx,xxx from 表1,表2 wh
- 本文实例为大家分享了Python实现简单扫雷游戏的具体代码,供大家参考,具体内容如下#coding: utf-8__note__ = &qu
- 本文实例讲述了symfony2.4的twig中date用法。分享给大家供大家参考,具体如下:获得当前时间:{{ "now"
- 查看python3.4.1文档,发现对于decimal模块的讲解非常多,由此可见其功能也很强大(下面算是把我认为比较重要的半翻译半学习吧~)
- 介绍对于服务器后端开发者而言,有时候需要把自己的一些服务直接暴露给PM或者其他RD使用,这个时候需要搭建一套web服务可以和前端用户做简单交
- 需求场景:使用sqlalchmy从现有的表中获取数据(不是自己建表)。百度了一下,网上都是使用sqlalchemy自己先创建表,然后导入数据
- 一、概述SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份和恢复方法。这里介绍一种学习中常用
- 1. 整数、浮点数和复数Python2中区分整型int、长整型longPython3中只有统称为 整型int浮点数即带有小数点的数字,因为浮
- 国际象棋是当今国际上最流行的智力体育运动项目。青年人下棋可以锻炼思维、增强记忆力和培养坚强的意志;中年人下棋可以享受美学;老年下棋可以很好的
- RedHat 9.0下自带的mysql rpm包为mysql-3.23.54a-11.i386.rpm,如果在你安装操作系统时没有安装mys
- <html><head><title>不刷新页面查询的方法</title><meta
- 前段时间在网上找了一个“完美的”JavaScript对象克隆的函数,感觉还不错,但随后便出现了一些问题,发现这个克隆并不好用,在使用发现了如