日志模块nb_log

环境安装

使用pip即可安装使用
pip install nb_log

1.功能介绍

0)自动转换print效果,再也不怕有人在项目中随意print,导致很难找到是哪冒出的print。

只要import nb_log, 项目所有的地方的print自动现型并在控制台可点击精确跳转到print的地方。
 

1)兼容性

使用的是python的内置logging封装的,返回的logger对象的类型是py官方内置日志的Logger类型,兼容性强,保证了第三方各种handlers扩展数量多和方便,和一键切换现有项目的日志。
 
比如logru和logbook这种三方库,完全重新写的日志,它里面主要被用户使用的logger变量类型不是python内置Logger类型,造成logger说拥有的属性和方法有的不存在或者不一致,这样的日志和python内置的经典日志兼容性差,只能兼容(一键替换logger类型)一些简单的debug info warning error等方法。
 

2)日志记录到多个地方

内置了一键入参,每个参数是独立开关,可以把日志同时记录到8个常用的地方的任意几种组合,包括控制台文件 钉钉  邮件 mongo kafka es等等。
 

3)日志命名空间独立,采用了多实例的logger,按日志命名空间区分。

命名空间独立意味着每个logger单独的日志界别过滤,单独的控制要记录到哪些地方。
logger_aa = LogManager('aa').get_logger_and_add_handlers(10, log_filename='aa.log')
logger_bb = LogManager('bb').get_logger_and_add_handlers(30, is_add_elastic_handler=False, ding_talk_token='your_dingding_token')
logger_cc = LogManager('cc').get_logger_and_add_handlers(10, log_filename='cc.log')
那么logger_aa.debug('哈哈')
将会同时记录到控制台和文件aa.log中,只要debug及debug以上级别都会记录。
logger_bb.warning('嘿嘿嘿')
将只会发送到钉钉群消息,并且logger_bb的info debug级别日志不会被记录,非常方便测试调式然后稳定了调高界别到生产。
logger_cc的日志会写在cc.log中,和logger_aa的日志是不同的文件。
 

4)对内置logging包打了猴子补丁,使日志永远不会 使用同种handler重复记录

例如,原生的
from logging import getLogger,StreamHandler
logger = getLogger('hi')
getLogger('hi').addHandler(StreamHandler())
getLogger('hi').addHandler(StreamHandler())
getLogger('hi').addHandler(StreamHandler())
logger.warning('啦啦啦')
明明只warning了一次,但实际会造成 啦啦啦在控制台打印3次。
使用nb_log,对同一命名空间的日志,可以无惧反复添加同类型handler,不会重复记录。
5)支持日志自定义,运行此包后,会自动在你的python项目根目录中生成nb_log_config.py文件,按说明修改。

2.最简单的使用方式,这只是演示控制台日志

2.0)自动拦截改变项目中所有地方的print效果。(支持配置文件自定义关闭转化print)
2.1)控制台日志变成可点击,精确跳转。(支持配置文件自定义修改或增加模板,内置了7种模板,部分模板生成的日志可以在pycharm控制台点击跳转)
2.2)控制台日志根据日志级别自动变色。(支持配置文件关闭彩色或者关闭背景色块)
from nb_log import LogManager
 
logger = LogManager('啦啦啦').get_logger_and_add_handlers()
 
logger.debug('绿色')
logger.info('蓝色')
logger.warning('黄色')
logger.error('紫红色')
logger.critical('血红色')
print('print样式被自动发生变化')

3.文件日志

3.1)这个文件日志的自定义filehandler是python史上性能最强大的支持多进程下日志文件按大小自动切割。
原文地址:https://www.cnblogs.com/HandsUp/p/13612660.html