前言
所謂天才,只不過是把別人喝咖啡的功夫都用在工作上了。—— 魯迅
一、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記錄日志的時候,完全不會日志重復輸出!!!