python常識系列21-->一個不能不用的python日志模塊**nb_log**


前言

  所謂天才,只不過是把別人喝咖啡的功夫都用在工作上了。—— 魯迅

一、nb_log介紹

  • 非常好用的日志記錄模塊
  • 作者自訴:在python日志的使用和理解上,能夠和我打成平手的,國內沒有幾人(贊同)

二、功能簡介:

  • 自動轉換print效果,再也不怕有人在項目中隨意print,導致很難找到是從哪里冒出來的print。
    只要import nb_log,項目所有地方的print自動現型並在控制台可點擊幾精確跳轉到print的地方。

  • 兼容性
    使用的是python的內置logging封裝的,返回的logger對象的類型是py官方內置日志的Logger類型,兼容性強,
    保證了第三方各種handlers擴展數量多和方便,和一鍵切換現有項目的日志。

  • 日志記錄到多個地方
    內置了一鍵入參,每個參數是獨立開關,可以把日志同時記錄到8個常用的地方的任意幾種組合,
    包括 控制台 文件 釘釘 郵件 mongo kafka es 等等 。在第8章介紹實現這種效果的觀察者模式。

三、nb_log基本使用及應用

3.1 nb_log安裝

pip install nb_log

3.2 nb_log基礎使用

from nb_log import LogManager

logger = LogManager('newdream').get_logger_and_add_handlers()
print('hello')
logger.info('你好!')
logger.warning('警告!!')
logger.error('這是錯誤日志')

首次執行上述代碼,可能會報 /Pythonlogs模塊不能創建,處理方式:
進入get_logger_and_add_handlers()方法,把里面的log_path參數的默認值改為其它路徑即可使用。

然后再次執行代碼,不報錯會在當前python項目跟路徑生成一個nb_log_config.py日志配置模塊,對其進行如下圖2個設置:

找到32、33行分別做如上圖設置

然后再次執行代碼,即可看到日志,如下圖

3.3 nb_log打印日志到文件

import os
from nb_log import LogManager

logger = LogManager('newdream').get_logger_and_add_handlers(log_filename='ApiTest.log')
print('hello')
logger.info('你好!')
logger.warning('警告!!')
logger.error('這是錯誤日志')

在之前的代碼的get_logger_and_add_handlers()方法中加上log_filename參數即可打印到日志文件。

四、小結

  • nb_log完成上述操作后,基本不用在代碼框架中做其它任何配置,即可使用
  • 常用的日志模塊如logru\logbook這種三方庫,完全重新寫的日志,造成logger說擁有的屬性和方法有的不存在或者不一致,這樣的日志和python內置的經典日志兼容性差,只能兼容(一鍵替換logger類型)一些簡單的debug info warning errror等方法
  • nb_log記錄日志的時候,完全不會日志重復輸出!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM