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模块定义了下表所示的日志级别,按事件严重程度由低到高排列(注意是全部大写!因为它们是常量。):

级别级别数值使用时机
DEBUG10详细信息,常用于调试。
INFO20程序正常运行过程中产生的一些信息。
WARNING30警告用户,虽然程序还在正常工作,但有可能发生错误。
ERROR40由于更严重的问题,程序已不能执行一些功能了。
CRITICAL50严重错误,程序已不能继续运行。

默认级别是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()

python  logging日志打印过程解析

来源:https://www.cnblogs.com/zoulixiang/p/11713181.html

标签:python,logging,日志,打印
0
投稿

猜你喜欢

  • 关于Typora中latex的用法与常用语法

    2022-08-01 18:02:02
  • 字符集和字符编码(Charset & Encoding)

    2023-08-24 16:37:44
  • springboot连接不同数据库的写法详解

    2024-01-26 21:35:28
  • 利用Python抢回在蚂蚁森林逝去的能量(实现代码)

    2022-07-01 15:15:39
  • 安全校验Session验证码并避免绕开验证码攻击

    2022-06-30 20:15:41
  • Python对HTML转义字符进行反转义的实现方法

    2022-07-27 08:44:34
  • 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
  • python 特殊属性及方法详细解析

    2023-04-23 10:52:20
  • Python中强大的命令行库click入门教程

    2023-05-01 04:24:09
  • Go开源项目分布式唯一ID生成系统

    2024-02-14 22:08:15
  • python实现自动发送邮件发送多人、群发、多附件的示例

    2023-01-13 22:24:32
  • python 获取当前目录下的文件目录和文件名实例代码详解

    2022-07-21 21:31:25
  • python检测服务器端口代码实例

    2023-07-07 06:34:14
  • 死锁问题详解

    2023-08-20 06:02:47
  • GOLANG使用Context实现传值、超时和取消的方法

    2024-05-22 10:13:13
  • 非常不错的SQL语句学习手册实例版第1/3页

    2024-01-25 23:31:01
  • 解决pytorch 数据类型报错的问题

    2022-12-22 08:55:04
  • 详解JavaScript函数callee、call、apply的区别

    2024-05-11 10:23:21
  • asp之家 网络编程 m.aspxhome.com