一、logging模块介绍
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等
二、logging模块的使用
2.1 最简单的日志输出
import logging logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', ) logging.debug('调试模式') #上面的level级别可以用数字10表示 logging.info('正常运行') #同上level = 20 logging.warning('警告') #同上level = 30 logging.error('错误') #同上level = 40 logging.critical('崩溃') #同上level = 50
--------------运行结果---------------
2018-12-05 20:58:19,609 日志文件.py[line:16] DEBUG 调试模式 2018-12-05 20:58:19,609 日志文件.py[line:17] INFO 正常运行 2018-12-05 20:58:19,610 日志文件.py[line:18] WARNING 警告 2018-12-05 20:58:19,610 日志文件.py[line:19] ERROR 错误 2018-12-05 20:58:19,610 日志文件.py[line:20] CRITICAL 崩溃
---------------------------------
logging.basicConfig()参数讲解:
filename: #用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
filemode: #文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format: #指定handler使用的日志显示格式。
datefmt: #指定日期时间格式。
level: #设置root logger的日志级别
stream: #用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open(‘test.log’,’w’)),默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。
format 参数中可能用到的格式化串:
%(name)s #Logger的名字
%(levelno)s #数字形式的日志级别
%(levelname)s #文本形式的日志级别
%(pathname)s #调用日志输出函数的模块的完整路径名,可能没有
%(filename)s #调用日志输出函数的模块的文件名
%(module)s #调用日志输出函数的模块名
%(funcName)s #调用日志输出函数的函数名
%(lineno)d #调用日志输出函数的语句所在的代码行
%(created)f #当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d #输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s #字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d #线程ID。可能没有
%(threadName)s #线程名。可能没有
%(process)d #进程ID。可能没有
%(message)s #用户输出的消息