Python logging模块用法示例
本文实例讲述了Pythonlogging模块用法。分享给大家供大家参考,具体如下:
logging模块
函数式简单配置
importlogging logging.debug('debugmessage') logging.info('infomessage') logging.warning('warningmessage') logging.error('errormessage') logging.critical('criticalmessage')
logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:
- filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
- filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
- format:指定handler使用的日志显示格式。
- datefmt:指定日期时间格式。
- level:设置rootlogger(后边会讲解具体概念)的日志级别
- stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open('test.log','w')),默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。
format参数中可能用到的格式化串:
logging库提供了多个组件:Logger、Handler、Filter、Formatter。Logger对象提供应用程序可直接使用的接口,Handler发送日志到适当的目的地,Filter提供了过滤日志信息的方法,Formatter指定日志显示格式。另外,可以通过:logger.setLevel(logging.Debug)设置级别,当然,也可以通过fh.setLevel(logging.Debug)单对文件流设置某个级别。
defmy_logger(filename,leval,file=True,stream=True): logger=logging.getLogger() formatter=logging.Formatter(fmt='%(asctime)s--%(message)s----%(name)s--%(levelname)s--%(lineno)d', datefmt='%d/%m/%y%H:%M:%S') logger.setLevel(leval) iffile: file_handler=logging.FileHandler(filename,encoding='utf-8') logger.addHandler(file_handler) file_handler.setFormatter(formatter) ifstream: stream_handler=logging.StreamHandler() stream_handler.setFormatter(formatter) logger.addHandler(stream_handler) returnlogger logger=my_logger('logging',logging.DEBUG) logger.warning('warn!!!')
运行结果:
28/08/1809:48:53--warn!!!----root--WARNING--27
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python日志操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。