• python常识系列21-->一个不能不用的python日志模块**nb_log**


    前言

      所谓天才,只不过是把别人喝咖啡的功夫都用在工作上了。—— 鲁迅
    

    一、nb_log介绍

    • 非常好用的日志记录模块
    • 作者自诉:在python日志的使用和理解上,能够和我打成平手的,国内没有几人(赞同)

    二、功能简介:

    • 自动转换print效果,再也不怕有人在项目中随意print,导致很难找到是从哪里冒出来的print。 只要import nb_log,项目所有地方的print自动现型并在控制台可点击几精确跳转到print的地方。

    • 兼容性 使用的是python的内置logging封装的,返回的logger对象的类型是py官方内置日志的Logger类型,兼容性强, 保证了第三方各种handlers扩展数量多和方便,和一键切换现有项目的日志。

    • 日志记录到多个地方 内置了一键入参,每个参数是独立开关,可以把日志同时记录到8个常用的地方的任意几种组合, 包括 控制台 文件 钉钉 邮件 mongo kafka es 等等 。在第8章介绍实现这种效果的观察者模式。

    三、nb_log基本使用及应用

    3.1 nb_log安装

    pip install nb_log
    

    3.2 nb_log基础使用

    from nb_log import LogManager
    
    logger = LogManager('newdream').get_logger_and_add_handlers()
    print('hello')
    logger.info('你好!')
    logger.warning('警告!!')
    logger.error('这是错误日志')
    

    首次执行上述代码,可能会报 /Pythonlogs模块不能创建,处理方式: 进入get_logger_and_add_handlers()方法,把里面的log_path参数的默认值改为其它路径即可使用。

    然后再次执行代码,不报错会在当前python项目跟路径生成一个nb_log_config.py日志配置模块,对其进行如下图2个设置:

    找到32、33行分别做如上图设置

    然后再次执行代码,即可看到日志,如下图

    3.3 nb_log打印日志到文件

    import os
    from nb_log import LogManager
    
    logger = LogManager('newdream').get_logger_and_add_handlers(log_filename='ApiTest.log')
    print('hello')
    logger.info('你好!')
    logger.warning('警告!!')
    logger.error('这是错误日志')
    

    在之前的代码的get_logger_and_add_handlers()方法中加上log_filename参数即可打印到日志文件。

    四、小结

    • nb_log完成上述操作后,基本不用在代码框架中做其它任何配置,即可使用
    • 常用的日志模块如logrulogbook这种三方库,完全重新写的日志,造成logger说拥有的属性和方法有的不存在或者不一致,这样的日志和python内置的经典日志兼容性差,只能兼容(一键替换logger类型)一些简单的debug info warning errror等方法
    • nb_log记录日志的时候,完全不会日志重复输出!!!
  • 相关阅读:
    生成Ptc文件时候使用top camera比较好
    3delight 上关于ptex的讨论,3delight的开发者最后说ptex的内存表现并不比普通的贴图差,不知道是不是因为3delight不支持而故意说的
    闲来无事,写个算法关于11000放在含有1001个元素。。。
    寻最优数字筛选算法找出 “排列数列“ 对应的 “组合数列“
    入住博客园
    日常工作中收集整理的MSSQL 技巧
    序列化 和 反序列化 类
    对Singleton Pattern的一点修改
    快速幂 & 取余运算 讲解
    JDK动态代理实现
  • 原文地址:https://www.cnblogs.com/dream66/p/13382888.html
Copyright © 2020-2023  润新知