纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

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

Lion King   2021-12-07 我要评论
想了解python使用nb_log模块捕获日志的方法的相关内容吗Lion King在本文为您仔细讲解python nb_log模块的相关知识和一些Code实例欢迎阅读和指正我们先划重点:python nb_log模块,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 onhttps://pypi.org/project/nb-log/

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

 

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

二、nb_log模块的使用

1、安装方式

pip install nb_log

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

 2、自动跳转功能

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

import nb_log
 
print("我是  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")

4、将日志写入文件

 未避免错误修改如下:

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

5、总结

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

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


相关文章

猜您喜欢

  • pandas数据合并与拼接 pandas数据的合并与拼接的实现

    想了解pandas数据的合并与拼接的实现的相关内容吗石头在本文为您仔细讲解pandas数据合并与拼接的相关知识和一些Code实例欢迎阅读和指正我们先划重点:pandas数据合并,pandas数据拼接下面大家一起来学习吧..
  • C# VB.NET Word嵌入多媒体文件 C# VB.NET 实现在Word中嵌入多媒体(视频、音频)文件

    想了解C# VB.NET 实现在Word中嵌入多媒体(视频、音频)文件的相关内容吗E-iceblue在本文为您仔细讲解C# VB.NET Word嵌入多媒体文件的相关知识和一些Code实例欢迎阅读和指正我们先划重点:C# Word嵌入多媒体文件,VB.NET  Word嵌入多媒体文件,C# VB.NET Word嵌入多媒体文件下面大家一起来学习吧..

网友评论

Copyright 2020 www.eleasoftware.com 【绿软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式