logging 日志记录模块
logging 模块官网说明
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 logginglogging.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 messageERROR:root:this is error messageCRITICAL:root:this is critical message
默认只打印 info 级别以上的信息,即只打印 warning,error,critical 级别的信息
logging.basicconfig() 函数
该函数可以用来修改日志的输出格式和方式,作用是将修改后的日志内容,写入到一个文件中。
logging.basicConfig(**kwargs)
可选参数如下:
注意 level 的参数,必须大写,logging.WARING 等等
filename 指定日志文件名filemode 指定日志文件打开的模式,w 或 alevel 指定日志级别,默认 logging.WARNINGformat指定输出的格式和内容,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 logginglogging.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 的文件,里面的输出结果为:
/10/27 07:59:26 sucre.py[line:47] DEBUG this is debug message/10/27 07:59:26 sucre.py[line:48] INFO this is info message/10/27 07:59:26 sucre.py[line:49] WARNING this is warning message