Python中nb_log模块有何应用,具体用法是什么
Admin 2022-07-04 群英技术资讯 627 次浏览
我想写一个日志模块,首选是python内置的logging模块,接着查找外部的第三方模块,一眼看到我们中国人写的模块nb_log。估计是”牛逼的日志“,这不得不说相当”严谨“。倒也符合我的口味,pypi的地址如下:
nb-log · PyPIvery sharp color display,monkey patch bulitin print and high-performance multiprocess safe roating file handler,other handlers includeing dintalk ,email,kafka,elastic and so on
https://pypi.org/project/nb-log/
怎么说呢?模块介绍的全文相当口水话,看起来相当业余,吹牛成分极大,但非常符合我的口味!物以类聚大概说的就是这事,不信你看该官方描述(只是冰山一角):
文章中还有许多对比,比如将其他模块或者一些博客文章直接拉出来枪毙,看起来极其嚣张,哪个中枪就不说了,反正很符合我的口味!现在就按照”官方文档“去使用吧!
pip install nb_log
如下图,安装过程中还有些安装不成功的提示,不过最后万事大吉:
如图所示,对print()也会进行跳转,因为作者喜欢日志,不喜欢print()。
import nb_log print("我是 nb_log !!!")
print("导入nb_log前,我print很普通") from nb_log import get_logger print("导入nb_log后,我print牛逼了 !!!") logger = get_logger('lalala') logger.debug("我叫debug") logger.info("我叫info") logger.warning("我叫warning") logger.error("我叫error") logger.critical("我叫critical")
未避免错误,修改如下:
from multiprocessing import Process from nb_log import LogManager, get_logger # 指定log_filename不为None 就自动写入文件了,并且默认使用的是多进程安全的切割方式的filehandler。 # 默认都添加了控制台日志,如果不想要控制台日志,设置is_add_stream_handler=False # 为了保持方法入场数量少,具体的切割大小和备份文件个数有默认值, # 如果需要修改切割大小和文件数量,在当前python项目根目录自动生成的nb_log_config.py文件中指定。 # logger = LogManager('ha').get_logger_and_add_handlers(is_add_stream_handler=True, # log_filename='ha.log') # get_logger这个和上面一句一样。但LogManager不只有get_logger_and_add_handlers一个公有方法。 logger = get_logger(name="all_log", is_add_stream_handler=True, log_filename='ha.log') def f(): for i in range(10): logger.debug('测试文件写入性能,在满足 1.多进程运行 2.按大小自动切割备份 3切割备份瞬间不出错' '这3个条件的前提下,验证这是不是python史上文件写入速度遥遥领先 性能最强的python logging handler') if __name__ == '__main__': [Process(target=f).start() for _ in range(10)]
运行之后,不太清楚文件去了哪里,尝试通过文件系统查找当前工程,也没有找到。从整个模块的使用来看,认为可能很牛逼,但无论是文档还是程序本身非常不规范!
查找全局才发现原来日志写到了这里:
我猜测这个函数应该有路径输入,于是打了path,便可定义了,如下:
logger = get_logger(name="all_log", is_add_stream_handler=True, log_path="./", log_filename='ha.log')
(1)模块能用,可能也好用,但建议先了解logging再使用
(2)个人维护,是否靠谱另说,但文档还不足够,也不规范,目前的版本是:nb-log 6.4
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。它具有强大的GPU加速的张量计算和自动求导系统的深度神经网络。本文将介绍如何通过PyTorch实现病虫害图像分类,感兴趣的可以学习一下
这篇文章主要介绍了pyodps中的apply用法及groupby取分组排序第一条数据,问绽放围绕主题展开详细的内容介绍,具有一定的参考价值需要的小伙伴可以参考一下
split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,本文介绍了spilt的具体使用,感兴趣的可以了解一下
这篇文章主要介绍了Python类和方法注释规范说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
大家好,本篇文章主要讲的是python绘制超炫酷动态Julia集示例,感兴趣的痛学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008