應用程式Python的日誌記錄模板 | 區塊鏈研究實驗室

買賣虛擬貨幣
透過定義明確,資訊量大且結構方便的日誌,除錯和跟蹤應用程式執行的理想方式。
它們是任何程式語言(不僅僅是Python)中任何大型,中型或大型專案必不可少的組成部分。
關於Python日誌記錄庫,大部分開發人員都善於解釋如何設定一個記錄系統用於一個Python指令碼。但是,幾乎找不到如何設定Python日誌記錄庫以在整個應用程式範圍內使用,以及如何在所有專案模組中舒適地正確整合和共享日誌記錄資訊的直譯器。
在本文中,我將分享我的個人日誌記錄模板,您可以輕鬆地將其用於具有多個模組的任何專案。
讓我們開始吧!

製作一個簡單的Python專案

首先讓我們現在開始初始化一個簡單的專案,建立一個名為“ MyAwesomeProject ”的資料夾,在其中建立一個名為的新Python檔案app.py。
這將是我們應用程式的起點,我將使用這個專案來構造我正在談論的模板的一個簡單的工作示例。
繼續並在VSCode(或您喜歡的任何編輯器)中開啟您的專案。
現在,讓我們為應用程式級別的日誌記錄設定建立一個新模組,我們將其稱為logger。

建立應用程式級別記錄器


這是模板的主要部分,我們建立一個名為logger.py的新檔案。
讓我們定義一個根記錄器,並將其用於初始化我們的應用程式級記錄器。是時候編寫一些程式碼了!
匯入一些和我們需要的應用名稱:
    import loggingimport sysAPP_LOGGER_NAME = 'MyAwesomeApp'
    我們將在app.py中呼叫的函式:
      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函式。
        def get_logger(module_name):  return logging.getLogger(APP_LOGGER_NAME).getChild(module_name)
        另外,為了將此模組用作軟體包,我們可以選擇建立一個名為logger的資料夾,並將此檔案放入其中。如果這樣做,我們還需要在資料夾中包含___init__.py檔案,然後執行
          from .logger import *
          以確保我們可以從包中匯入模組,現在需要完成主要設定!

          設定我們的模組級日誌


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

            執行我們的指令碼並測試記錄器


            現在,我們構建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.')
              現在,確認您的目錄包含以下檔案:
              專案資料夾
              最後,只需透過以下命令執行指令碼:
              python3 app.py
              您應該得到類似以下的輸出:

              並且您的目錄結構也應該更改為包括新的日誌檔案,繼續檢查其內容!

              日誌檔案出現!

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

              需要加入區塊鏈技術交流群嗎,請掃描下方二維碼,助手將邀請您進群。

              作者:鏈三豐,來源:區塊鏈研究實驗室

              免責聲明:

              1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
              2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
              3. 鏈報僅提供相關項目信息,不構成任何投資建議

              推荐阅读

              ;