欢迎来到站圈网!

php媒体远程七牛摇摇node

投稿中心

Python

当前位置: 主页 > 编程语言 > Python

Python使用NB_u方法按日志模块捕获日志

时间:2021-12-07|栏目:Python|点击:
    内容页广告位

一、调研日志模块

我想写一个日志模块,首选是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 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)]

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

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

python使用nb_log模块捕获日志的方法

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

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

5、总结

(1)模块能用,可能也好用,但建议先了解logging再使用

(2)个人维护,是否靠谱另说,但文档还不足够,也不规范,目前的版本是:nb-log 6.4

到此这篇关于python使用nb_log模块捕获日志的方法的文章就介绍到这了,更多相关python nb_log模块内容请搜索站圈网以前的文章或继续浏览下面的相关文章希望大家以后多多支持站圈网!

版权声明:本文内容由小编收集网络,均来自网络用户自发贡献,版权归原作者所有,Web前端、电脑编程学习类网站不拥有其著作权,亦不承担相应法律责任。具体规则请查看《Web前端、电脑编程学习类网站用户服务协议》和《Web前端、电脑编程学习类网站知识产权保护指引》。如果您发现本站中有涉嫌抄袭的内容,填写联系本站管理员,一经查实,管理员将立刻删除涉嫌侵权内容。

上一篇:基于Python编程的函数和模块

下一篇:了解有关Python类和模块化的更多信息

本文标题:Python使用NB_u方法按日志模块捕获日志

本文地址:https://www.zhano.cn/python/53074.html

AD300

广告投放 | 联系我们 | 版权申明 | SiteMap

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:15234109 | 邮箱:15234109#qq.com(#换成@)

Copyright © 2019-2021 豫ICP备19001789号