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版权协议,转载请附上原文出处链接和本声明。