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程序设计有所帮助。