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 on
https://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
到此這篇關於python使用nb_log模塊捕獲日志的方法的文章就介紹到這瞭,更多相關python nb_log模塊內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 如何理解python接口自動化之logging日志模塊
- Python logging簡介詳解
- python自動化測試通過日志3分鐘定位bug
- python 日志模塊logging的使用場景及示例
- 如何在Python項目中引入日志