郑州建材公司网站建设,城建亚泰建设集团网站,网站添加模块,手机壁纸网站源码日志模块 -logging(非常重要) 记录用户行为程序运行过程程序错误记录logging.debug()通常调试时用到的日志信息logging.info() #证明事情按照预期的那样工作longging.warning() #表明发生了意外#xff0c;或者不就得将来发生的问题#xff08;如#xff1a;磁盘满了#x…日志模块 -logging(非常重要) 记录用户行为程序运行过程程序错误记录logging.debug()通常调试时用到的日志信息logging.info() #证明事情按照预期的那样工作longging.warning() #表明发生了意外或者不就得将来发生的问题如磁盘满了软件还是正常的工作longging.error() #由于更严重的问题导致软件已经不能继续执行某些功能longging.critical() #严重错误表示软件不能再继续运行下去 程序默认级别在info以上 # 使用#导入logging模块import logginglogging.debug(低级别的拍错信息) #低级别的排错信息logging.info(正常的信息) #正常信息logging.warning(警告信息) #警告信息logging.error(错误信息) #错误信息logging.critical(高级别的错误信息) #高级别错误信息#结果WARNING:root:警告信息ERROR:root:错误信息CRITICAL:root:高级别的错误信息简单配置 import logging#配置logging
logging.basicConfig(filenamelogger.log, levellogging.INFO)logging.debug(低级别的拍错信息) #低级别的排错信息
logging.info(正常的信息) #正常信息
logging.warning(警告信息) #警告信息
logging.error(错误信息) #错误信息
logging.critical(高级别的错误信息) #高级别错误信息#结果
当前文件路径下生成了文件logger.log
其内容如下
INFO:root:正常的信息
WARNING:root:警告信息
ERROR:root:错误信息
CRITICAL:root:高级别的错误信息 因为通过levellogging.INFO设置了日志的通知级别所以文件中打印出了INFO的信息basicConfig()常用配置参数 logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为可用参数有filename用指定的文件名创建FiledHandler这样日志会被存储在指定的文件中。filemode文件打开方式在指定了filename时使用这个参数默认值为“a”还可指定为“w”。format指定handler使用的日志显示格式。datefmt指定日期时间格式。level设置rootlogger后边会讲解具体概念的日志级别stream用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(fopen(‘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用户输出的消息 basicConfig有两个坑(缺点) 对中文的兼容问题无法解决中文的乱码问题不能同时往文件和屏幕输出利用对象的方式创建logging 程序的充分解耦让程序变得高可定制化各功能相当于绑定功能的添加时通过对象之间的绑定 import logging#创建一个logging对象logger logging.getLogger()#创建一个logging文件对象fh logging.FileHandler(text.log, encodingutf-8, modea)#创建一个logging控制台对象sh logging.StreamHandler() #输出至什么地方#输出格式formatter %(asctime)s%(lineno)d#创建输出格式的对象fm logging.Formatter(formatter) #设置一个格式#文件对象和控制台对象添加输出格式fh.setFormatter(fm) #以什么格式输出至什么地方sh.setFormatter(fm)#给logging对象添加logger.addHandler(fh)logger.addHandler(sh)logging.debug(低级别的拍错信息) #低级别的排错信息logging.info(正常的信息) #正常信息logging.warning(警告信息) #警告信息logging.error(错误信息) #错误信息logging.critical(高级别的错误信息) #高级别错误信息非常灵活自定义的程度很高可以设定不同的输出位置和不同的格式logging库提供了多个组件Logger、Handler、Filter、Formatter。Logger对象提供应用程序可直接使用的接口Handler发送日志到适当的目的地Filter提供了过滤日志信息的方法Formatter指定日志显示格式。另外可以通过logger.setLevel(logging.Debug)设置级别,当然也可以通过fh.setLevel(logging.Debug)单对文件流设置某个级别总结 配置方式两种 basicConfig()直接设置全局 不兼容中文模式不能同时多位置输出logging对象创建 高定制高灵活转载于:https://www.cnblogs.com/liliudong/p/9660663.html