在Python3中,使用内置的logging模块来实现接口自动化框架中的日志记录功能

一、日志只写到文件里,不在控制台打印

1、导入logging模块

2、设置日志格式、输出文件名和写入模式

3、测试日志输出

注:如下配置后,每次运行程序时都会将新的日志内容追加text.log文件中。注意确保目标文件夹存在且有写入权限.

import logging

#设置日志格式、输出文件名和写入模式
logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s',
                    filename='text.log',
                    filemode='w')

# 测试日志输出
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')

运行结果结果如下:

在Python3中,使用内置的logging模块来实现接口自动化框架中的日志记录功能_第1张图片

以下是logging.basicConfig()方法的参数含义:

  • level: 设置日志级别,可以选择的值有DEBUGINFOWARNINGERRORCRITICAL,默认为WARNING
  • format: 设置日志格式,可以自定义输出格式。常用的占位符有:
    • %(asctime)s: 日志记录时间
    • %(levelname)s: 日志级别
    • %(message)s: 日志内容
  • filename: 指定日志文件名
  • filemode: 设置打开日志文件的模式。常用的值有:
    • 'a': 追加模式,将新日志追加到现有日志后面
    • 'w': 覆写模式,每次运行程序时都清空原有日志并重新开始记录

二、日志输出到文件和控制台

1、先通过getLogger()方法创建了一个名为"my_logger"的日志记录器

2、创建文件处理器,设置输出文件名

3、创建控制台处理器,用于在控制台打印日志

4、设置日志打印格式

5、将日志格式应用到两个处理器

6、将这两个处理器添加到日志记录器中

7、测试日志输出

import logging

# 创建日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

# 创建文件处理器,用于将日志输出到文件
file_handler = logging.FileHandler('test.log')
file_handler.setLevel(logging.DEBUG)

# 创建控制台处理器,用于将日志输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)

# 创建格式化器
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')

# 将格式化器应用于处理器
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

# 将处理器添加到记录器中
logger.addHandler(file_handler)
logger.addHandler(console_handler)

# 测试日志输出
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")

在Python3中,使用内置的logging模块来实现接口自动化框架中的日志记录功能_第2张图片

logging.Formatter类的构造函数中,可以传入不同的参数来定制日志格式。下面是一些常用的参数及其含义:

  • fmt:指定日志输出格式的字符串。可以使用以下占位符来插入相应的信息:

    • %a:星期几的缩写(如Mon)
    • %A:星期几的全称(如Monday)
    • %b:月份的缩写(如Jan)
    • %B:月份的全称(如January)
    • %d:日期,以01-31表示
    • %H:小时,以24小时制表示
    • %I:小时,以12小时制表示
    • %m:月份,以01-12表示
    • %M:分钟,以00-59表示
    • %p:AM/PM指示符
    • %S:秒数,以00-59表示
    • %Y:年份,四位数表示
    • %(name)s:记录器名称
    • %(levelname)s:日志级别名称(DEBUG、INFO、WARNING等)
    • %(message)s:日志消息文本
  • datefmt: 指定日期时间格式化字符串。默认为"%Y-%m-%d %H:%M:%S"。

  • style: 指定占位符风格。可选值有 "%" 和 "{ }"。默认为 "%" 风格。

三、在控制台上打印彩色日志

通过使用colorlog.ColoredFormatter(),我们可以给不同的日志级别指定相应的颜色.


import logging
import colorlog

# 创建日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

# 创建控制台处理器,并设置颜色格式化
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_formatter = colorlog.ColoredFormatter(
    '%(asctime)s - %(log_color)s%(levelname)s%(reset)s: %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    reset=True,
    log_colors={
        'DEBUG': 'cyan',
        'INFO': 'green',
        'WARNING': 'yellow',
        'ERROR': 'red',
        'CRITICAL': 'bold_red'
    }
)
console_handler.setFormatter(console_formatter)

# 创建文件处理器,并设置级别及格式化
file_handler = logging.FileHandler('test.log')
file_handler.setLevel(logging.DEBUG)
file_formatter = logging.Formatter('%(asctime)s - %(levelname)s: %(message)s')
file_handler.setFormatter(file_formatter)


# 将处理器添加到日志记录器中
logger.addHandler(console_handler)
logger.addHandler(file_handler)

# 测试日志输出
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")

在Python3中,使用内置的logging模块来实现接口自动化框架中的日志记录功能_第3张图片

下面是 colorlog.ColoredFormatter() 的一些常见参数及其说明:

  • fmt:设置日志消息的格式字符串。可以使用变量来表示不同的字段,如 {asctime} (时间), {levelname} (级别), {message} (消息内容) 等。
  • datefmt:设置日期和时间字段的格式字符串。默认值为 None,使用默认日期时间格式。
  • style:指定格式化风格,默认为 "%" 风格。可以选择 "{""%", 或 "$".
  • log_colors:设置不同级别的日志对应的颜色字典。可以使用预定义颜色字典(如 'debug''info''warning''error''critical')或自定义 RGB 值。
  • reset:设置是否在每条日志消息之后重置终端颜色,默认为 True。
  • secondary_log_colors: 设置其他字段(除了日期、级别和消息)对应的颜色字典。

四、日志打印的级别

日志打印的级别通常按照以下顺序,从低到高:

  1. DEBUG(调试):用于详细的调试信息。
  2. INFO(信息):用于确认事情按预期工作。
  3. WARNING(警告):表示某些非致命性的问题或不寻常的情况。
  4. ERROR(错误):指示出现了一个错误,但应用程序仍能继续运行。
  5. CRITICAL(严重错误):指示发生了严重的错误,可能导致应用程序无法继续运行。

默认情况下,只有大于等于当前设置的日志级别才会被记录和显示。例如,如果将日志级别设置为 WARNING,则只有 WARNING、ERROR 和 CRITICAL 级别的日志消息会被输出。

你可能感兴趣的:(python,接口自动化,自动化,python,pycharm)