python习题#讲解14日志讲解

1.借助日志模板文件,初始化日志配置,
要求:2天生成一个新日志文件,保留日志文件个数3。测试日志使用,
打印日志信息内容: “这是晚自习作业题的日志信息”,
保存到 log_homework.log 文件中。
打印 5条以上日志。
截图打印结果。

import logging
import logging.handlers#导入日志参数
from config import D#导入路径
#when='D':D是days天缩写#2是指2个 when#3是指⽇志⽂件的个数
def init_log_config(filename, when='D', interval=2, backup_count=3):
    """
    功能:初始化日志配置函数
    :param filename: 日志文件名
    :param when: 设定日志切分的间隔时间单位
    :param interval: 间隔时间单位的个数,指等待多少个 when 后继续进行日志记录
    :param backup_count: 保留日志文件的个数
    :return:
    """
    # 1. 创建日志器对象
    logger = logging.getLogger()

    # 2. 设置日志打印级别
    logger.setLevel(logging.DEBUG)
    # logger.setLevel(logging.INFO)
    # logger.setLevel(logging.WARNING)
    # logger.setLevel(logging.ERROR)
    # logger.setLevel(logging.CRITICAL )
    # logging.DEBUG 调试级别
    # logging.INFO 信息级别
    # logging.WARNING 警告级别
    # logging.ERROR 错误级别
    # logging.CRITICAL 严重错误级别

    # 3. 创建处理器对象
    # 控制台对象
    st = logging.StreamHandler()
    # 日志文件对象
    fh = logging.handlers.TimedRotatingFileHandler(filename,
                                                   when=when,
                                                   interval=interval,
                                                   backupCount=backup_count,
                                                   encoding='utf-8')

    # 4. 日志信息格式
    fmt = "%(asctime)s %(levelname)s [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
    formatter = logging.Formatter(fmt)

    # 5. 给处理器设置日志信息格式
    st.setFormatter(formatter)
    fh.setFormatter(formatter)

    # 6. 给日志器添加处理器
    logger.addHandler(st)
    logger.addHandler(fh)

init_log_config(D + '/log/log_homework.log')  # 定义日志生成路径和文件名
# 打印输出日志信息5条以上
logging.debug('这是晚自习作业题的日志信息')
logging.debug('这是晚自习作业题的日志信息调试级别的日志')
logging.info('这是晚自习作业题的日志信息信息级别的日志')
logging.warning('这是晚自习作业题的日志信息警告级别的日志')
logging.error('这是晚自习作业题的日志信息错误级别的日志')
logging.critical('这是晚自习作业题的日志信息严重错误级别的日志')
''' 功能:初始化⽇志配置函数
 :param filename: ⽇志⽂件名
 :param when: 设定⽇志切分的间隔时间单位
 :midnight:每天凌晨/D-days天/H-hours小时/M-minutes分钟/S-seconds秒钟
 :param interval: 间隔时间单位的个数,指等待多少个 when 后继续进⾏⽇志记录
 :param backup_count: 保留⽇志⽂件的个数'''

2.任选一个 json数据, 使用python代码实现该数据的 全量字段校验。要求:
1)字段数量 5个以上。
2)必须使用 type、properties、const、required 关键字。

# 导包
import jsonschema
#数据
jsondata = {"success": False,
            "code": 10000,
            "message": "xxx登录成功",
            'data': {'name': 'lily','age':20}}
#type验证数据类型
#required验证数据in包含
#properties如果type类型是object类型字典
#pattern查找模糊查询
#const断言相等==
schema = {"type": "object",
          'required':["success","code","message",'data'],
          "properties": {"success": {"type": "boolean"},
                         "code": {"type": "integer"},
                         "message": {"pattern": "登录成功$"},
                         'data': {'type': 'object',
                                  'required':['name','age'],
                                  "properties":{'name':{'const': "lily"},'age':{'const': 20}
                                                }
                                  }
                         }
          }
print(jsonschema.validate(jsondata, schema))


版权声明:本文为weixin_68440128原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。