Python记录日志logging

本文详细介绍Python的logging模块,包括日志级别的定义与使用,模块的四大核心组件:loggers、handlers、filters和formatters的功能与配置。同时,文章还解释了logging.basicConfig函数的参数含义,以及各种handler的作用和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

logging模块为python应用程序和库实现灵活记录系统的函数和类操作信息。

1.下载安装:

pip install logging

 

2.日志级别:

级别描述
debug详细信息,通常在诊断问题时才有意义
info确认事情按预期工作
warning警告信息
error更严重的问题
Critical严重错误,表面程序本身可能无法继续运行 

logging.debug(msg,*args,**kwargs) #创建一条严重级别为DEBUG的日志记录

logging.info(msg,*args,**kwargs) #创建一条严重级别为info的日志记录

logging.warning(msg,*args,**kwargs)#创建一条严重级别为warning的日志记录

logging.error(msg,*args,**kwargs)#创建一条严重级别为error的日志记录

logging.critical(msg,*args,**kwargs)#创建一条严重级别为critical的日志记录

 

3.logging模块的四大组件

loggers:提供应用程序代码直接使用的接口

handlers:提供将日志记录发送到指定的目的位置

filters:提供更细粒度的日志过滤功能。用于决定哪些日志记录将被输出

formatters:用于控制日志信息的最终输出格式

 

4.logging.basicConfig(**kwargs)的函数说明

filename:指定日志输出目标文件的文件名,指定该设置项后日志信息就不会被输出到控制台了

filemode:指定日志文件的打开模式,默认为‘a’,该选项要在filename指定时才有效

format:指定日志格式字符串,即指定日志输出时所包含的字段信息以及它们的顺序

datefmt:指定日期/时间格式,该选项依赖format

level:指定日志器的日志级别

stream:指定日志输出目标,该选项不可和filename 同时指定

format格式字符串的字段信息包含以下:
%(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:打印日志信息

logging有一个日志处理的主对象,其他处理方式都是通过addHandler添加进去,logging中包含的handler主要有如下几种,

handler名称:位置;作用

StreamHandler:logging.StreamHandler;日志输出到流,可以是sys.stderr,sys.stdout或者文件
FileHandler:logging.FileHandler;日志输出到文件
BaseRotatingHandler:logging.handlers.BaseRotatingHandler;基本的日志回滚方式
RotatingHandler:logging.handlers.RotatingHandler;日志回滚方式,支持日志文件最大数量和日志文件回滚
TimeRotatingHandler:logging.handlers.TimeRotatingHandler;日志回滚方式,在一定时间区域内回滚日志文件
SocketHandler:logging.handlers.SocketHandler;远程输出日志到TCP/IP sockets
DatagramHandler:logging.handlers.DatagramHandler;远程输出日志到UDP sockets
SMTPHandler:logging.handlers.SMTPHandler;远程输出日志到邮件地址
SysLogHandler:logging.handlers.SysLogHandler;日志输出到syslog
NTEventLogHandler:logging.handlers.NTEventLogHandler;远程输出日志到Windows NT/2000/XP的事件日志
MemoryHandler:logging.handlers.MemoryHandler;日志输出到内存中的指定buffer
HTTPHandler:logging.handlers.HTTPHandler;通过"GET"或者"POST"远程输出到HTTP服务器
 

转博文:http://www.cnblogs.com/zhbzz2007/p/5943685.html

https://www.cnblogs.com/liujiacai/p/7804848.html

转载于:https://www.cnblogs.com/qixc/p/9854873.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值