日志记录是软件中必不可少的功能,它能记录系统运行状态,帮助技术人员定位问题。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