logging 模块官网说明
日志记录的级别
logging.debug(msg, *args, **kwargs)
logging.info(msg, *args, **kwargs)
logging.warning(msg, *args, **kwargs)
logging.error(msg, *args, **kwargs)
logging.critical(msg, *args, **kwargs)
日志级别排序 CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET
示例
import logging
logging.info('this is info message')
logging.debug('this is debug message')
logging.warning('this is warning message')
logging.error('this is error message')
logging.critical('this is critical message')
结果
WARNING:root:this is warning message
ERROR:root:this is error message
CRITICAL:root:this is critical message
默认只打印 info 级别以上的信息,即只打印 warning,error,critical 级别的信息
logging.basicconfig() 函数
该函数可以用来修改日志的输出格式和方式,作用是将修改后的日志内容,写入到一个文件中。
logging.basicConfig(**kwargs)
可选参数如下:
注意 level 的参数,必须大写,logging.WARING 等等
filename 指定日志文件名
filemode 指定日志文件打开的模式,w 或 a
level 指定日志级别,默认 logging.WARNING
format 指定输出的格式和内容,format 的参考信息如下
datefmt 使用指定的时间格式,format 参数中有 asctime 的话,需要使用 datefmt 指定格式
format 输出格式参数
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
datefmt 参数和 time() 模块中的参数一致,可以参考笔记本中的 time() 模块文档,参考地址。
示例
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%Y/%m/%d %H:%M:%S', filename='myapp.log', filemode='w')
logger = logging.getLogger(__name__)
logging.debug('this is debug message')
logging.info('this is info message')
logging.warning('this is warning message')
logger = logging.getLogger(name) 一般在日志文件中写入该行 =大师兄python
输出结果,在 执行脚本的当前目录下,创建了一个 myapp.log 的文件,里面的输出结果为:
2017/10/27 07:59:26 sucre.py[line:47] DEBUG this is debug message
2017/10/27 07:59:26 sucre.py[line:48] INFO this is info message
2017/10/27 07:59:26 sucre.py[line:49] WARNING this is warning message