文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python如何使用nb_log模块捕获日志

2023-06-21 23:48

关注

这篇文章将为大家详细讲解有关python如何使用nb_log模块捕获日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、调研日志模块

我想写一个日志模块,首选是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 onpython如何使用nb_log模块捕获日志https://pypi.org/project/nb-log/

怎么说呢?模块介绍的全文相当口水话,看起来相当业余,吹牛成分极大,但非常符合我的口味!物以类聚大概说的就是这事,不信你看该官方描述(只是冰山一角):

python如何使用nb_log模块捕获日志

 python如何使用nb_log模块捕获日志

 文章中还有许多对比,比如将其他模块或者一些博客文章直接拉出来枪毙,看起来极其嚣张,哪个中枪就不说了,反正很符合我的口味!现在就按照”官方文档“去使用吧!

二、nb_log模块的使用

1、安装方式

pip install nb_log

如下图,安装过程中还有些安装不成功的提示,不过最后万事大吉:

python如何使用nb_log模块捕获日志

 2、自动跳转功能

如图所示,对print()也会进行跳转,因为作者喜欢日志,不喜欢print()。

import nb_log print("我是  nb_log !!!")

python如何使用nb_log模块捕获日志

 3、屏幕流日志效果

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")

python如何使用nb_log模块捕获日志

4、将日志写入文件

python如何使用nb_log模块捕获日志

 未避免错误,修改如下:

from multiprocessing import Processfrom 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)]

运行之后,不太清楚文件去了哪里,尝试通过文件系统查找当前工程,也没有找到。从整个模块的使用来看,认为可能很牛逼,但无论是文档还是程序本身非常不规范!

查找全局才发现原来日志写到了这里:

python如何使用nb_log模块捕获日志

 我猜测这个函数应该有路径输入,于是打了path,便可定义了,如下:

logger = get_logger(name="all_log", is_add_stream_handler=True, log_path="./", log_filename='ha.log')

关于“python如何使用nb_log模块捕获日志”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯