日志记录是软件中必不可少的功能,它能记录系统运行状态,帮助技术人员定位问题。logging是python自带的日志模块。这里梳理一下这个用法。
最简单用法:
04 |
logging.basicConfig(filename = '/tmp/xxx.log',level = logging.INFO, format ='[%(asctime)s %(levelname)s] %(message)s', datefmt = '%Y%m%d %H:%M:%S') |
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.设置了日志级别之后,低于该级别的日志将会被忽略。
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