yaml配置文件D19

1)yaml配置

2)yaml封装

3)logging封装配合yaml配置文件

附带代码:

import yaml
from yaml import SafeLoader


def read_yaml(file):
    with open(file, "r") as f:
        config = yaml.load(f, Loader=SafeLoader)
        return config


def write_yaml(file, data):
    with open(file, "a") as f:
        yaml.dump(data, f)


if __name__ == '__main__':
    print(read_yaml("config.yaml"))
    write_yaml("config.yaml", {"code": "18"} )

import logging

from common.yaml_handler import read_yaml

config = read_yaml("config.yaml")
logger_config = config["logger"]


def get_logger(
        name=logger_config["name"],
        file=logger_config["file"],
        logger_level=logger_config["logger_level"],
        stream_level=logger_config["stream_level"],
        file_level=logger_config["file_level"],
        fmt="%(asctime)s--%(filename)s--lineNO:%(lineno)d--%(levelname)s:%(message)s"
):
    logger = logging.getLogger(name)
    logger.setLevel(logger_level)

    stream_logger = logging.StreamHandler()
    stream_logger.setLevel(stream_level)
    logger.addHandler(stream_logger)

    fmt = logging.Formatter(fmt)
    stream_logger.setFormatter(fmt)

    if file:
        file_logger = logging.FileHandler(file)
        file_logger.setLevel(file_level)
        logger.addHandler(file_logger)
        file_logger.setFormatter(fmt)

    return logger


if __name__ == '__main__':
    logger = get_logger()
    logger.debug("hello,python")
    logger.warning("hi,world!")

作业:

自动化测试框架搭建
请根据模块分层思想搭建自动化框架结构

公共的方法目录:common
测试用例类模块目录:testcases
测试数据目录:data
测试报告存放目录:reports
存放一些下载第三方的模块:library
配置文件存放目录:conf
日志文件存放的目录:logs
项目的启动文件:run_test.py
分别测试每个模块是否可以使用。
(有精力的同学可以尝试自己先调通模块之间的调用,不需要提交)

上期答案:

"""
logging 模块封装
对 logging 日志处理进行封装。使用 2 种方法:
方法一: 函数封装 def get_logger()
方法二: 类封装 class LoggerHander(logging.Logger)

提示:得到收集器 logger 可以用 super()__init__ 哦!
"""
# 掌握把日志封装成函数方法即可
import logging


def get_logger(
        name=None,
        file=None,
        logger_level="DEBUG",
        stream_level="DEBUG",
        file_level="INFO",
        fmt="%(asctime)s--%(filename)s--lineNO:%(lineno)d--%(levelname)s:%(message)s"
):
    # 设置日志收集器
    logger = logging.getLogger(name)
    logger.setLevel(logger_level)

    # 设置日志处理器 流处理器
    stream_handler = logging.StreamHandler()
    stream_handler.setLevel(stream_level)
    logger.addHandler(stream_handler)

    fmt = logging.Formatter(fmt)
    stream_handler.setFormatter(fmt)

    if file:
        file_handler = logging.FileHandler(file, encoding="utf-8")
        file_handler.setLevel(file_level)
        logger.addHandler(file_handler)
        file_handler.setFormatter(fmt)

    return logger


# class LoggerHandler:
#     def __init__(
#             self,
#             name=None,
#             file=None,
#             logger_level="DEBUG",
#             stream_level="DEBUG",
#             file_level="INFO",
#             fmt="%(asctime)s--%(filename)s--lineNO:%(lineno)d--%(levelname)s:%(message)s"
#     ):
#         # 设置日志收集器
#         logger = logging.getLogger(name)
#         # 设置日志收集器level
#         logger.setLevel(logger_level)
#
#         # 设置日志处理器 流处理器
#         stream_handler = logging.StreamHandler()
#         # 设置日志处理器level
#         stream_handler.setLevel(stream_level)
#
#         logger.addHandler(stream_handler)
#
#         fmt = logging.Formatter(fmt)
#
#         stream_handler.setFormatter(fmt)
#
#         if file:
#             file_handler = logging.FileHandler(file, encoding="utf-8")
#             file_handler.setLevel(file_level)
#             logger.addHandler(file_handler)
#             file_handler.setFormatter(fmt)
#
#         self.logger = logger
#
#
# class LoggerHandler2(logging.Logger):
#     def __init__(
#             self,
#             name=None,
#             file=None,
#             logger_level="DEBUG",
#             stream_level="DEBUG",
#             file_level="INFO",
#             fmt="%(asctime)s--%(filename)s--lineNO:%(lineno)d--%(levelname)s:%(message)s"
#     ):
#         super().__init__(name, logger_level)
#
#         self.setLevel(logger_level)
#         stream_handler = logging.StreamHandler()
#         stream_handler.setLevel(stream_level)
#
#         self.addHandler(stream_handler)
#
#         fmt = logging.Formatter(fmt)
#         stream_handler.setFormatter(fmt)
#
#         if file:
#             file_handler = logging.FileHandler(file, encoding="utf-8")
#             file_handler.setLevel(file_level)
#             self.addHandler(file_handler)
#             file_handler.setFormatter(fmt)


if __name__ == '__main__':
    logger = get_logger(file="log.txt")
    logger.debug("hello")
    logger.info("hello python")
    logger.warning("hello world")
    logger.error("hi")
    logger.critical("hi python")
  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值