• python json_path的用法和写日志的用法


    json_path 就是用来取层级比较多比较复杂的方式,只要一行代码就可以取到啦

     s={"errno":0,"data":12}

    print(jsonpath.jsonpath(s,'$.max_count'))#$代表最原始的字典

    print(jsonpath.jsonpath(s,'$.mems[0].nick'))#获取第0个元素返回一个list
    print(jsonpath.jsonpath(s,'$..level')) #模糊查询
     
    写日志是为了方便查看错误 
    用到的python模块就是loguru模块 
    from  loguru import logger
    #debug调试信息=这是日志最低的级别
    #info 正常的提示信息
    #error就是出错的日志
    #exception #执行出错了 sql执行出错了
    #waring 警告的信息

    如果只想做一个调试信息

     一共就四种级别, 显示时间,级别,python文件名字,module那个方法里面,现在没有方法 加个结尾fd()就有方法了 这种只是输出  

    日志级别 设置级别方法 

    logger.add('wxl.log',level='WARNING',encoding='utf-8')#写进日志里,在服务器里  add写日志级别意思
    如果在本地使用这个方法
    logger.remove()#清除默认的配置debug配置否则输出会带debug,我们想改配置就要带这一行
    #debug生产环境不会写
    logger.add(sys.stdout,level='WARNING')#设置日志级别一般都是info,stdout
    #逻辑都是往stdout写数据在输出到操作系统,不加这句屏幕就没有

    fmt = '[{time}][{level}][{file.path}:line:{line}:function_name:{function}] ||msg={message}' 调整显示的格式内容操作,显示时间日志级别,当前路径和名字
    Log日志级别从高到低排序 ERROR、WARNing、INFO、DEBUG   打印的都是比他高的 比如你要打印WARING日志那没,输出只会打印waring和error

    #debug调试信息=这是日志最低的级别
    #info 正常的提示信息
    #error就是出错的日志
    #exception #执行出错了 sql执行出错了
    #waring 警告的信息

    #高并发怎么写 cpu 火箭 内存高铁 磁盘最慢 交互磁盘很不好,同步写不太好
    #所以需要异步写,不会先放到磁盘,先放到消息队列里,去排队处理,他自己在起一个线程然后去写
    这样就减少了程序在磁盘交互,提高性能enqueue=True, rotation='1 day') # 写在日志文件里面

    rotation 是删除日志的操作
    rotation='1 day' 每天生成一次
    rotation='1 day'如果写1kb就会产生一个文件也可以不设置 
    rotation='2kb,0:00,7 days' 七天零点清除日志


    # rotation可以设置大小,超过多大就产生一个新文件 1 kb ,500 m ,1 g
    # rotation可以多长时间,1 day 1 hour
    # rotation几点创建新文件,00:00 1:00

    # rotation几点创建新文件,10 second 十分钟清除之前的日志

    # retention = 7 days #多长时间后会删除以前产生的日志,当前的日志不会受影响
    #enqueue=True,异步写日志 #同步
    #队列
    #消息队列

     标准写法

    import time
    import sys
    def fd():
    logger.remove()#清除它的默认设置设置
    fmt = '[{time}][{level}][{file.path}:line:{line}:function_name:{function}] ||msg={message}'
    logger.add('wxl.log',level='DEBUG',format=fmt,encoding='utf-8',enqueue=True,rotation='1s',retention='10 second')#写在日志文件里面
    #retention 删除日志定时删除之前的 rotation设置日志生成的条件
    for i in range(20):#执行异步加函数
    time.sleep(1)
    logger.debug('程序开始运行了')
    logger.debug('开始连接mysql')
    logger.info('mysql配置xxxx')
    logger.warning('警告,磁盘空间即将不足')
    logger.error('程序出错了')
    fd()
    
    
    
  • 相关阅读:
    海康相机抓图使用OpencvSharp转换成Mat格式
    海康工业相机MVS抓图图像转HObject格式
    golang 图片上传HTTP服务
    python 程序打包 pyinstaller
    海康工业相机 MVS 抓图并转为Mat格式,支持彩色相机
    Qt QImage 与 Opencv Mat转换
    Qt 延时函数
    C/C++ 简单的Log日志
    Opencv3——通道分离与合并
    Opencv——Mat像素算术操作
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/13731217.html
Copyright © 2020-2023  润新知