日志记录是软件中必不可少的功能,它能记录系统运行状态,帮助技术人员定位问题。logging是python自带的日志模块。这里梳理一下这个用法。
最简单用法:
01 |
#导入包 |
02 |
import logging
|
03 |
#基础设置 |
04 |
logging.basicConfig(filename = '/tmp/xxx.log' ,level = logging.INFO, format = '[%(asctime)s %(levelname)s] %(message)s' , datefmt = '%Y%m%d %H:%M:%S' )
|
05 |
#写日志,以不同的级别。 |
06 |
logging.debug( 'debug log' )
|
07 |
logging.info( 'info log' )
|
08 |
logging.warning( 'warning log' )
|
09 |
logging.error( 'error log' )
|
10 |
logging.critical( 'critial log' )
|
函数格式:
1 |
logging.basicConfig(filename = $日志路径,level = $日志级别, format = $日志格式, datefmt = $时间格式)
|
参数介绍:
日志路径:
可以不设置,默认打印到屏幕。设置文件路径后直接写入文件。
日志级别:
logging模块中的日志分为5个级别, 从高到低依次是:CRITICAL > ERROR > WARNING > INFO > DEBUG.设置了日志级别之后,低于该级别的日志将会被忽略。
1 |
#除了代码中设置,这样也能设置日志级别。 |
2 |
python --log=$级别 xxx.py |
3 |
python --log=INFO xxx.py |
日志格式:
说明 | 属性名 | 格式 |
打印当前时间,默认会展示2003-07-08 16:49:45,896,精度会精确到千分之一秒。 | asctime | %(asctime)s |
打印当前的时间戳(time.time()函数的返回值) | created | %(created)f |
打印当前文件名。 | filename | %(filename)s |
打印当前函数名。 | funcName | %(funcName)s |
本条日志的日志级别 (‘DEBUG’, ‘INFO’, ‘WARNING’, ‘ERROR’,’CRITICAL’). | levelname | %(levelname)s |
日志级别的整型值 (DEBUG, INFO, WARNING, ERROR,CRITICAL). | levelno | %(levelno)s |
打印日志的代码在文件中的行号 (if available). | lineno | %(lineno)d |
打印当前的模块名。 | module | %(module)s |
打印当前时间的毫秒部分。 | msecs | %(msecs)d |
当前的日志内容。 | message | %(message)s |
当前日志的对象的name。 | name | %(name)s |
打印当前文件的完整路径名。 | pathname | %(pathname)s |
进程号 | process | %(process)d |
进程名 | processName | %(processName)s |
当前时间与日志对象创建的相对时间,显示为毫秒值 | relativeCreated | %(relativeCreated)d |
线程ID | thread | %(thread)d |
线程名 | threadName | %(threadName)s |
时间格式:
类似strftime的格式化转换,参数表见《scrapy笔记——python的时间转换》
转载请注明:旅途@KryptosX » 初探python的日志模块logging
时间: 2024-10-28 22:09:24