python中logging模块使用
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:30
1、logging模块使用场景
在写程序的时候,尤其是大型的程序,在程序中加入日志系统是必不可少的,它能记录很多的信息。刚刚接触python的时候肯定都在用print来输出信息,这样是最简单的输出,正是因为这样,在调试的时候还要去逐个的去更新print后面的内容,代码少的时候还好,但是当代码量到达一定数量时,使用logging就是一种好的选择
2、loggging对应日志的级别
回显信息:

结果说明:
默认生成的日志root logger的level是logging.WARNING,低于该级别的就不输出了
日志级别优先级:CRITICAL > ERROR > WARNING > INFO > DEBUG
debug : 打印全部的日志,详细的信息,通常只出现在诊断问题上
info : 打印info,warning,error,critical级别的日志,确认一切按预期运行
warning : 打印warning,error,critical级别的日志,一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”),这个软件还能按预期工作
error : 打印error,critical级别的日志,更严重的问题,软件没能执行一些功能
critical : 打印critical级别,一个严重的错误,这表明程序本身可能无法继续运行
如何需要展低于waring级别下的日志信息:则需要设置NOTSET级别来显示
回显信息:

3、常见方法和参数说明
logging.Formatter():这个类配置了日志的格式,在里面自定义设置日期和时间,输出日志的时候将会按照设置的格式显示内容。
Logging.Logger:Logger是Logging模块的主体,进行以下三项工作:
1. 为程序提供记录日志的接口
2. 判断日志所处级别,并判断是否要过滤
3. 根据其日志级别将该条日志分发给不同handler
常用函数有:
Logger.setLevel() 设置日志级别
Logger.addHandler() 和 Logger.removeHandler() 添加和删除一个Handler
Logger.addFilter() 添加一个Filter,过滤作用
Logging.Handler:Handler基于日志级别对日志进行分发,如设置为WARNING级别的Handler只会处理WARNING及以上级别的日志。
常用函数有:
setLevel() 设置级别
setFormatter() 设置Formatter
4、日志输出---控制台
5、日志输出--日志文件和控制台
1、初始化 logger = logging.getLogger("endlesscode"),getLogger()方法后面最好加上所要日志记录的模块名字,后面的日志格式中的%(name)s 对应的是这里的模块名字
2、设置级别 logger.setLevel(logging.DEBUG),Logging中有NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL这几种级别,日志会记录设置级别以上的日志
3、设置Filehandler和StreamHandler来把日志记录到文件里,同时设置记录文件的日志级别和控制台打印日志的文件级别--Handler,常用的是StreamHandler和FileHandler,windows下你可以简单理解为一个是console和文件日志,一个打印在CMD窗口上,一个记录在一个文件上
4、设置日志格式
--------------------------------------------------------------------
及常见日志格式说明:
%(name)s Logger的名字
%(levelname)s 文本形式的日志级别
%(message)s 用户输出的消息
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(levelno)s 数字形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
6、当一个项目比较大的时候,不同的文件中都要用到Log,可以考虑将其封装为一个类来使用
相关文章
-
python中numpy库ndarray多维数组的的运算:np.abs(x)
python中numpy库ndarray多维数组的的运算:np.abs(x)
- 互联网
- 2026年04月04日
-
python中numpy库的一些使用
python中numpy库的一些使用
- 互联网
- 2026年04月04日
-
Python中的numpy库介绍!
Python中的numpy库介绍!
- 互联网
- 2026年04月04日
-
python中@property装饰器的使用
python中@property装饰器的使用
- 互联网
- 2026年04月04日
-
python中%s是什么意思
python中%s是什么意思
- 互联网
- 2026年04月04日
-
Python之文件读写
Python之文件读写
- 互联网
- 2026年04月04日





