python使用nb log模組捕獲日誌的方法

2022-09-22 00:33:08 字數 2272 閱讀 6268

目錄

我想寫乙個日誌模組,首選是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

怎麼說呢?模組介紹的全文相當口水話,看起來相當業餘,吹牛成分極大,但非常符合我的口味!物以類聚大概說的就是這事,不信你看該官方描述(只是冰山一角):

文章中還有許多對比,比如將其他模組或者一些部落格文章直接拉出來槍斃,看起來極其囂張,哪個中槍就不說了,反正很符合我的口味!現在就按照」官方文件「去使用吧!

pip install nb_log

如下圖,安裝過程中還有些安裝不成功的提示,不過最後萬事大吉:

如圖所示,對print()也會進行跳轉,因為www.cppcns.com作者喜歡日誌,不喜歡print()。

import nb_log

print("我是 nb_log !!!")

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

未避免錯誤,修程式設計客棧改如下:

from multipwww.cppcns.comrocessing 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_log程式設計客棧ger這個和上面一句一樣。但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')

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

(2)個人維護程式設計客棧,是否靠譜另說,但文件還不足夠,也不規範,目前的版本是:nb-log 6.4

python模組使用 python 模組發布及使用

將模組 此處名為nester 寫好後,與setup.py放入同乙個資料夾中 from distutils.core importsetup setup name 發布名,一般同模組名 version 版本號 py modules 模組列表 引數,其他引數根據需求新增 構建發布檔案 在資料夾下開啟終端...

Python使用模組Pyserial模組報

用pip安裝pyserial後 sudo h pip install pyserial,執行新建的程式,名稱為serial.py,程式中用到 import serial.toos.list ports,但總是提示importerror no module named tools.list ports...

python模組使用 python的模組使用

模組是python組織 的基本方式。乙個python指令碼可以單獨執行,也可以匯入到另乙個指令碼中執行,當指令碼被匯入執行時,我們將其稱為模組 module 所有的.py檔案都可以作為乙個模組匯入 模組名與指令碼的檔名相同 例如我們編寫了乙個名為hello.py的指令碼,則可以在另乙個指令碼中用im...