初探python的日志模块logging

  1. 云栖社区>
  2. 博客>
  3. 正文

初探python的日志模块logging

kryptosx 2016-05-27 23:28:23 浏览1359
展开阅读全文

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

网友评论

登录后评论
0/500
评论
kryptosx
+ 关注