北京海淀网站建设,网站建设 数据上传 查询,万能浏览器手机版,小规模公司做网站成本是什么一、logging日志模块等级常见log级别从高到低#xff1a;CRITICAL 》ERROR 》WARNING 》INFO 》DEBUG#xff0c;默认等级为WARNING#xff0c;即WARNING级别的log才输出。日志等级(level)描述CRITICAL当发生严重错误#xff0c;导致应用程序不能继续运行时记录的信息E…一、logging日志模块等级常见log级别从高到低CRITICAL 》ERROR 》WARNING 》INFO 》DEBUG默认等级为WARNING即WARNING级别的log才输出。日志等级(level)描述CRITICAL当发生严重错误导致应用程序不能继续运行时记录的信息ERROR由于一个更严重的问题导致某些功能不能正常运行时记录的信息WARNING当某些不期望的事情发生时记录的信息(如磁盘可用空间较低)但是此时应用程序还是正常运行的INFO信息详细程度仅次于DEBUG通常只记录关键节点信息用于确认一切都是按照我们预期的那样进行工作DEBUG最详细的日志信息典型应用场景是 问题诊断二、logging模块的使用方式介绍logging模块提供了两种记录日志的方式第一种方式是使用logging提供的模块级别的函数第二种方式是使用Logging日志系统的四大组件其实logging所提供的模块级别的日志记录函数也是对logging日志系统相关类的封装而已。(1)logging模块定义的模块级别的常用函数函数说明logging.debug(msg, *args, **kwargs)创建一条严重级别为DEBUG的日志记录logging.info(msg, *args, **kwargs)创建一条严重级别为INFO的日志记录logging.warning(msg, *args, **kwargs)创建一条严重级别为WARNING的日志记录logging.error(msg, *args, **kwargs)创建一条严重级别为ERROR的日志记录logging.critical(msg, *args, **kwargs)创建一条严重级别为CRITICAL的日志记录logging.log(level, *args, **kwargs)创建一条严重级别为level的日志记录logging.basicConfig(**kwargs)对root logger进行一次性配置其中logging.basicConfig(**kwargs)函数用于指定“要记录的日志级别”、“日志格式”、“日志输出位置”、“日志文件的打开模式”等信息其他几个都是用于记录各个级别日志的函数。(2)logging模块的四大组件组件说明loggers提供应用程序代码直接使用的接口handlers用于将日志记录发送到指定的目的位置filters提供更细粒度的日志过滤功能用于决定哪些日志记录将会被输出(其它的日志记录将会被忽略)formatters用于控制日志信息的最终输出格式三、自定义Logger模块类# testLog1.pyimport loggingimport timeclass Logger():def __init__(self, logger, levellogging.DEBUG): : 自定义Logger模块类: logger: logger名: level: 日志级别# 创建一个loggerself.logger logging.getLogger(logger)self.logger.setLevel(level)# 定义handler的输出格式curr_time time.strftime(%Y-%m-%d)self.LogFileName log curr_time .txtfmt logging.Formatter(%(asctime)s - %(filename)s:[%(lineno)s] - [%(levelname)s] - %(message)s)# asctime: 日志事件发生的时间# filename: 源文件的名称部分包含文件后缀# lineno: 调用日志记录函数的源代码所在的行号# evelname: 该日志记录的文字形式的日志级别# message: 日志记录的文本内容# 创建一个handler, 用于写入日志文件fh logging.FileHandler(self.LogFileName)fh.setLevel(logging.DEBUG)fh.setFormatter(fmt)# 再创建一个handler用于输出到控制台ch logging.StreamHandler()ch.setLevel(logging.DEBUG)ch.setFormatter(fmt)# 给logger添加handlerself.logger.addHandler(fh)self.logger.addHandler(ch)# level优先级# logger.setLevel handler.setLevel logging.basicConfigif __name__ __main__:log Logger(__name__, levellogging.DEBUG)log.logger.debug(debug)log.logger.log(logging.DEBUG, debug)# 执行testLog1.py则控制台输出如下2020-08-03 20:36:47,104 - testLog1.py:[117] - [DEBUG] - debug2020-08-03 20:36:47,104 - testLog1.py:[118] - [DEBUG] - debug# 日志文件记录如下2020-08-03 20:36:15,982 - testLog1.py:[117] - [DEBUG] - debug2020-08-03 20:36:15,982 - testLog1.py:[118] - [DEBUG] - debug# testLog2.pyfrom testLog1 import Loggerimport tracebacklog Logger(__name__)def func():try:assert 12except Exception:log.logger.info(测试失败,输出信息如下{}.format(traceback.format_exc())) # traceback.format_exc() 会返回异常信息的字符串if __name__ __main__:func()# 执行testLog2.py则控制台输出如下2020-08-03 20:43:44,907 - testLog2.py:[11] - [INFO] - 测试失败,输出信息如下Traceback (most recent call last): File E:/imooc/testLog.py, line 9, in func assert 12AssertionError# 日志文件记录如下2020-08-03 20:43:44,907 - testLog2.py:[11] - [INFO] - 测试失败,输出信息如下Traceback (most recent call last): File E:/imooc/testLog.py, line 9, in func assert 12AssertionError以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持python博客。