文章目录1. 介绍2. 全局 logging3. 自定义 logger 并输出到控制台4. 自定义logger并输出到日志文件5. 自定义日志格式并输出到文件1. 介绍logging是 Python 标准库中的一个模块它提供了灵活的日志记录功能。通过logging开发者可以方便地将日志信息输出到控制台、文件、网络等多种目标同时支持不同级别的日志记录以满足不同场景下的需求。下面介绍一下使用。2. 全局 logging代码如下所示importlogging# 默认情况下, logging输出warning及以上级别的日志# 指定输出级别, 输出info及以上级别的日志logging.basicConfig(levellogging.INFO)logging.debug(This is a debug message)logging.info(This is an info message)logging.warning(This is a warning message)logging.error(This is an error message)logging.critical(This is a critical message)运行结果如下3. 自定义 logger 并输出到控制台代码如下所示# 导入 logging 模块importlogging logging.basicConfig(levellogging.INFO)# 获取一个日志记录器对象名称为当前模块的名称loggerlogging.getLogger(__name__)# 设置日志记录器的级别为 DEBUG# 这意味着所有级别为 DEBUG 及以上的日志都会被记录logger.setLevel(logging.DEBUG)if__name____main__:logger.debug(This is a debug message)logger.info(This is an info message)logger.warning(This is a warning message)logger.error(This is an error message)logger.critical(This is a critical message)运行结果如下4. 自定义logger并输出到日志文件代码如下所示# 导入 logging 模块importlogging# 获取一个日志记录器对象名称为当前模块的名称loggerlogging.getLogger(__name__)# 设置日志记录器的级别为 DEBUG# 这意味着所有级别为 DEBUG 及以上的日志都会被记录logger.setLevel(logging.DEBUG)# 创建一个 FileHandler 对象指定日志文件的名称为 mylog.log# 这个处理器会将日志信息写入到指定的文件中handlerlogging.FileHandler(filenamemylog.log)# 将这个处理器添加到日志记录器中# 这样日志记录器就会使用这个处理器来处理日志信息logger.addHandler(handler)if__name____main__:logger.debug(This is a debug message)logger.info(This is an info message)logger.warning(This is a warning message)logger.error(This is an error message)logger.critical(This is a critical message)结果如下所示关键概念说明获取日志记录器logging.getLogger(__name__)获取一个日志记录器对象name 是当前模块的名称。使用模块名称作为日志记录器的名称有助于在大型项目中区分不同模块的日志。设置日志级别logger.setLevel(logging.DEBUG)将日志记录器的级别设置为 DEBUG这意味着所有 DEBUG 及以上级别的日志都会被记录。日志级别金字塔DEBUG INFO WARNING ERROR CRITICAL高于设定级别的日志才会被处理创建文件处理器logging.FileHandler(filenamemylog.log)创建一个文件处理器将日志信息写入到名为mylog.log的文件中。添加处理器logger.addHandler(handler)将文件处理器添加到日志记录器中这样日志记录器就会使用这个处理器来处理日志信息。5. 自定义日志格式并输出到文件代码如下所示# 导入 logging 模块importlogging# 获取一个日志记录器对象名称为当前模块的名称loggerlogging.getLogger(__name__)# 设置日志记录器的级别为 DEBUG# 这意味着所有级别为 DEBUG 及以上的日志都会被记录logger.setLevel(logging.DEBUG)# 创建一个 FileHandler 对象指定日志文件的名称为 test.log# 这个处理器会将日志信息写入到指定的文件中handlerlogging.FileHandler(filenametest.log)# 创建一个日志格式器对象formatterlogging.Formatter(%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d)] - %(message)s)# 将格式器设置到处理器上handler.setFormatter(formatter)# 将这个处理器添加到日志记录器中# 这样日志记录器就会使用这个处理器来处理日志信息logger.addHandler(handler)if__name____main__:logger.debug(This is a debug message)logger.info(This is an info message)logger.warning(This is a warning message)logger.error(This is an error message)logger.critical(This is a critical message)结果如下所示日志格式说明logging.Formatter是用于定义日志输出格式的类。在构造函数中传递了一个格式字符串用于指定日志信息的格式。格式字符串中使用了一些特殊的占位符以%开头这些占位符会被替换为相应的日志信息内容。如下表所示格式占位符说明%(asctime)s日志记录的时间戳通常显示为日期和时间。%(levelname)s日志级别如DEBUG、INFO、WARNING、ERROR、CRITICAL。%(name)s日志记录器的名称通常为模块名称。%(filename)s日志记录发生的文件名。%(funcName)s日志记录发生的函数名。%(lineno)d日志记录发生的行号。%(message)s日志消息本身。handler.setFormatter(formatter)将创建的格式器对象设置到处理器上。这意味着处理器在处理日志信息时会使用这个格式器来格式化日志信息。通过这种方式你可以控制日志信息的输出格式使其包含你感兴趣的信息如时间戳、日志级别、文件名、函数名、行号等。
【接口自动化测试】Logging 日志模块
发布时间:2026/6/29 18:27:55
文章目录1. 介绍2. 全局 logging3. 自定义 logger 并输出到控制台4. 自定义logger并输出到日志文件5. 自定义日志格式并输出到文件1. 介绍logging是 Python 标准库中的一个模块它提供了灵活的日志记录功能。通过logging开发者可以方便地将日志信息输出到控制台、文件、网络等多种目标同时支持不同级别的日志记录以满足不同场景下的需求。下面介绍一下使用。2. 全局 logging代码如下所示importlogging# 默认情况下, logging输出warning及以上级别的日志# 指定输出级别, 输出info及以上级别的日志logging.basicConfig(levellogging.INFO)logging.debug(This is a debug message)logging.info(This is an info message)logging.warning(This is a warning message)logging.error(This is an error message)logging.critical(This is a critical message)运行结果如下3. 自定义 logger 并输出到控制台代码如下所示# 导入 logging 模块importlogging logging.basicConfig(levellogging.INFO)# 获取一个日志记录器对象名称为当前模块的名称loggerlogging.getLogger(__name__)# 设置日志记录器的级别为 DEBUG# 这意味着所有级别为 DEBUG 及以上的日志都会被记录logger.setLevel(logging.DEBUG)if__name____main__:logger.debug(This is a debug message)logger.info(This is an info message)logger.warning(This is a warning message)logger.error(This is an error message)logger.critical(This is a critical message)运行结果如下4. 自定义logger并输出到日志文件代码如下所示# 导入 logging 模块importlogging# 获取一个日志记录器对象名称为当前模块的名称loggerlogging.getLogger(__name__)# 设置日志记录器的级别为 DEBUG# 这意味着所有级别为 DEBUG 及以上的日志都会被记录logger.setLevel(logging.DEBUG)# 创建一个 FileHandler 对象指定日志文件的名称为 mylog.log# 这个处理器会将日志信息写入到指定的文件中handlerlogging.FileHandler(filenamemylog.log)# 将这个处理器添加到日志记录器中# 这样日志记录器就会使用这个处理器来处理日志信息logger.addHandler(handler)if__name____main__:logger.debug(This is a debug message)logger.info(This is an info message)logger.warning(This is a warning message)logger.error(This is an error message)logger.critical(This is a critical message)结果如下所示关键概念说明获取日志记录器logging.getLogger(__name__)获取一个日志记录器对象name 是当前模块的名称。使用模块名称作为日志记录器的名称有助于在大型项目中区分不同模块的日志。设置日志级别logger.setLevel(logging.DEBUG)将日志记录器的级别设置为 DEBUG这意味着所有 DEBUG 及以上级别的日志都会被记录。日志级别金字塔DEBUG INFO WARNING ERROR CRITICAL高于设定级别的日志才会被处理创建文件处理器logging.FileHandler(filenamemylog.log)创建一个文件处理器将日志信息写入到名为mylog.log的文件中。添加处理器logger.addHandler(handler)将文件处理器添加到日志记录器中这样日志记录器就会使用这个处理器来处理日志信息。5. 自定义日志格式并输出到文件代码如下所示# 导入 logging 模块importlogging# 获取一个日志记录器对象名称为当前模块的名称loggerlogging.getLogger(__name__)# 设置日志记录器的级别为 DEBUG# 这意味着所有级别为 DEBUG 及以上的日志都会被记录logger.setLevel(logging.DEBUG)# 创建一个 FileHandler 对象指定日志文件的名称为 test.log# 这个处理器会将日志信息写入到指定的文件中handlerlogging.FileHandler(filenametest.log)# 创建一个日志格式器对象formatterlogging.Formatter(%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d)] - %(message)s)# 将格式器设置到处理器上handler.setFormatter(formatter)# 将这个处理器添加到日志记录器中# 这样日志记录器就会使用这个处理器来处理日志信息logger.addHandler(handler)if__name____main__:logger.debug(This is a debug message)logger.info(This is an info message)logger.warning(This is a warning message)logger.error(This is an error message)logger.critical(This is a critical message)结果如下所示日志格式说明logging.Formatter是用于定义日志输出格式的类。在构造函数中传递了一个格式字符串用于指定日志信息的格式。格式字符串中使用了一些特殊的占位符以%开头这些占位符会被替换为相应的日志信息内容。如下表所示格式占位符说明%(asctime)s日志记录的时间戳通常显示为日期和时间。%(levelname)s日志级别如DEBUG、INFO、WARNING、ERROR、CRITICAL。%(name)s日志记录器的名称通常为模块名称。%(filename)s日志记录发生的文件名。%(funcName)s日志记录发生的函数名。%(lineno)d日志记录发生的行号。%(message)s日志消息本身。handler.setFormatter(formatter)将创建的格式器对象设置到处理器上。这意味着处理器在处理日志信息时会使用这个格式器来格式化日志信息。通过这种方式你可以控制日志信息的输出格式使其包含你感兴趣的信息如时间戳、日志级别、文件名、函数名、行号等。