import pprint
“”"
 import requests
 data = {“key1”:“val1”,“key2”:“val2”}
 res = requests.get(url=“http://httpbin.org/get”,params=data)
 pprint.pprint(res.json())日志
 去服务器直接看日志
 tail -f xxx.log | grep “test” | tee -a text.txt
 一、日志作用
 1、记录程序执行过程
 2、通过日志还原用户操作二、日志要素
 1、输出时间
 2、日志级别
 3、日志格式
 4、日志内容
 5、日志渠道(日志输出的位置)三、日志级别
 debug(调试) < info(程序正常运行输出的日志)< warning(警告) < error(程序运行报错) < critical(致命错误程序崩溃)四、创建一个日志收集器
 1、创建日志收集器
 2、创建日志收集渠道
 3、创建日志格式
 4、渠道绑定日志格式
 5、日志收集器设置日志级别
 6、给日志收集器绑定渠道五、日志格式
 %(name)s : 日志收集渠道的名称
 %(levelno)s :日志级别对应的数值
 %(levelname)s : 日志级别名称 (“DEBUG”, “INFO”,“WARNING”, “ERROR”, “CRITICAL”)
 %(pathname)s :输出日志的文件的绝对路径(有.py后缀)
 %(filename)s :输出日志的py文件的名称(有.py后缀)
 %(module)s: 输出日志的py文件的名称(没有有.py后缀)
 %(lineno)d:输出日志的行数
 %(funcName)s:输出日志的函数名称,如果不是函数输出,那就输出py文件名称(%(module)s)
 %(created)f :日志输出的时间,格式为时间戳,time.time()
 %(asctime)s:日志输出的时间,格式(年-月-日 时:分:秒,毫秒)
 %(msecs)d :日志输出时间的毫秒
 %(relativeCreated)d : 日志输出的相对时间
 %(thread)d :输出日志的线程id
 %(threadName)s :输出日志的线程名称
 %(process)d:输出日志的进程id
 %(message)s :日志内容六、使用:
 try:
 py48.debug(msg=“这里是日志信息2”)
 py48.info(msg=“这里是日志信息3”)
 except Exception as e:
 py48.error(msg=“hhhh”)
 “”"
 import logging
 from logging import handlers#设置默认的日志级别(root收集器的日志级别)
logging.basicConfig(level=logging.DEBUG)
1、创建日志收集器
py48 = logging.getLogger(name=“py48”)
2、创建日志收集渠道
#控制台
 pycharm = logging.StreamHandler()
 #文件xxxx.log,一直往一个文件里面写file = logging.FileHandler(filename=“py48.log”,mode=“w”)
#日志切割,秒、分、时、日、月、周
 #filename:文件名称(如果不是当前路径要带上路径) D:\vip_class\py48\day19\test.log
 #when=‘h’: 日志滚动周期(切割周期) H: 小时 S:秒 D:日 W: 周 M: 分
 #interval:when 的单位
 #encoding=“utf-8”:兼容中文backupCount:保留多少个日志文件,自动删除掉之前的文件,一般不用
file = handlers.TimedRotatingFileHandler(filename=“test.log”,when=“D”,interval=1,encoding=“utf-8”)
3、创建日志格式
时间-渠道名称-日志级别名称-输出日志文件的绝对路径-函数名称-日志信息
fmt = “【%(asctime)s-%(name)s-%(levelname)s-%(pathname)s-%(funcName)s-%(lineno)d】>>>:%(message)s”
 pycharm_fmt = logging.Formatter(fmt=fmt)4、渠道绑定日志格式
pycharm.setFormatter(fmt=pycharm_fmt)
 file.setFormatter(fmt=pycharm_fmt)5、日志收集器设置日志级别
#收集器>>> 收集某个级别的日志
 #渠道>>> 去收集器中过滤渠道需要的日志级别的日志,然后输出
 #渠道的日志级别要比收集器的日志级别要高
 #如果只设置日志收集器的日志级别,渠道会继承日志收集器的日志级别
 py48.setLevel(level=logging.DEBUG) #日志收集器设置日志级别pycharm.setLevel(level=logging.DEBUG) # 渠道日志级别
file.setLevel(level=logging.INFO) # 渠道日志级别
6、给日志收集器绑定渠道
py48.addHandler(pycharm)
 py48.addHandler(file)py48.debug(msg=“这里是日志信息1”)
 py48.debug(msg=“这里是日志信息2”)
 py48.info(msg=“这里是日志信息3”)
 py48.error(msg=“hhhh”)