小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

應用程序Python的日志記錄模板 | 區(qū)塊鏈研究實驗室

 風聲之家 2021-05-14
原創(chuàng) 鏈三豐 區(qū)塊鏈研究實驗室 4天前
通過定義明確,信息量大且結構方便的日志,調試和跟蹤應用程序執(zhí)行的理想方式。
它們是任何編程語言(不僅僅是Python)中任何大型,中型或大型項目必不可少的組成部分。
關于Python日志記錄庫,大部分開發(fā)人員都善于解釋如何設置一個記錄系統(tǒng)用于一個Python腳本。但是,幾乎找不到如何設置Python日志記錄庫以在整個應用程序范圍內(nèi)使用,以及如何在所有項目模塊中舒適地正確集成和共享日志記錄信息的解釋器。
在本文中,我將分享我的個人日志記錄模板,您可以輕松地將其用于具有多個模塊的任何項目。
讓我們開始吧!

制作一個簡單的Python項目


首先讓我們現(xiàn)在開始初始化一個簡單的項目,創(chuàng)建一個名為“ MyAwesomeProject ”的文件夾,在其中創(chuàng)建一個名為的新Python文件app.py。
這將是我們應用程序的起點,我將使用這個項目來構造我正在談論的模板的一個簡單的工作示例。
繼續(xù)并在VSCode(或您喜歡的任何編輯器)中打開您的項目。
現(xiàn)在,讓我們?yōu)閼贸绦蚣墑e的日志記錄設置創(chuàng)建一個新模塊,我們將其稱為logger。


創(chuàng)建應用程序級別記錄器


這是模板的主要部分,我們創(chuàng)建一個名為logger.py的新文件。
讓我們定義一個根記錄器,并將其用于初始化我們的應用程序級記錄器。是時候編寫一些代碼了!
導入一些和我們需要的應用名稱:
import loggingimport sysAPP_LOGGER_NAME = 'MyAwesomeApp'
我們將在app.py中調用的函數(shù):
def setup_applevel_logger(logger_name = APP_LOGGER_NAME, file_name=None):     logger = logging.getLogger(logger_name)    logger.setLevel(logging.DEBUG)    formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")    sh = logging.StreamHandler(sys.stdout)    sh.setFormatter(formatter)    logger.handlers.clear()    logger.addHandler(sh)    if file_name:        fh = logging.FileHandler(file_name)        fh.setFormatter(formatter)        logger.addHandler(fh)    return logger
我們將使用預定義的DEBUG級別定義記錄器,并使用Formatter構造記錄消息。然后我們將其分配給流處理程序,以便將消息寫入控制臺。
接下來,我們還確保包含一個文件,我們也可以在其中另外存儲所有日志消息,這是通過記錄FileHandler來完成的。
最后,我們返回記錄器。
此時需要另一個功能,它將確保我們的模塊可以在需要時調用記錄器。定義一個get_logger函數(shù)。
def get_logger(module_name):       return logging.getLogger(APP_LOGGER_NAME).getChild(module_name)
另外,為了將此模塊用作軟件包,我們可以選擇創(chuàng)建一個名為logger的文件夾,并將此文件放入其中。如果這樣做,我們還需要在文件夾中包含___init__.py文件,然后執(zhí)行
from .logger import *
以確保我們可以從包中導入模塊,現(xiàn)在需要完成主要設置!


設置我們的模塊級日志


可以完成一個簡單的模塊來測試我們的記錄器,以更好地了解模板。讓我們將其定義為一個簡單的module.py。
import loggerlog = logger.get_logger(__name__)def multiply(num1, num2): # just multiply two numbers    log.debug("Executing multiply function.")    return num1 * num2
現(xiàn)在,該模塊可以訪問記錄器,并應顯示帶有適當模塊名稱的消息。
讓我們現(xiàn)在進行測試!


運行我們的腳本并測試記錄器


現(xiàn)在,我們構建app.py。
import loggerlog = logger.setup_applevel_logger(file_name = 'app_debug.log')import mymodulelog.debug('Calling module function.')mymodule.multiply(5, 2)log.debug('Finished.')
現(xiàn)在,確認您的目錄包含以下文件:

圖片

項目文件夾
最后,只需通過以下命令運行腳本:
python3 app.py
您應該得到類似以下的輸出:

圖片

并且您的目錄結構也應該更改為包括新的日志文件,繼續(xù)檢查其內(nèi)容!

圖片 

日志文件出現(xiàn)!

以上我們成功的搭建了Python日志記錄庫。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多