將訊息記錄到 Django 中的控制檯

Vaibhav Vaibhav 2021年12月25日
將訊息記錄到 Django 中的控制檯

當我們在機器上安裝一組軟體時,我們經常會在該應用程式的控制檯中找到一個日誌檔案或看到一些訊息正在列印。這些是日誌訊息,提供有關應用程式中發生的事件、軟體正在完成的任務、遇到的錯誤、警告等資訊。如果使用者允許應用程式共享錯誤報告,這些訊息將幫助軟體開發人員改進他們的應用程式並對其進行除錯。

在使用 Django 或任何其他專案框架時,我們通常使用列印語句來除錯我們的應用程式。列印報表是巨集大的;它們是內建的,使用起來非常輕鬆。但是,如果我們開始使用專用於此目的的包或庫,我們可以將這件事提升到一個新的水平。這些庫讓我們可以定義日誌訊息的級別,並輕鬆列印行號和時間戳等附加資訊。一些庫甚至允許我們為日誌語句或訊息新增顏色。

在本文中,我們將學習如何在 Django 專案中將訊息記錄到控制檯。

使用內建 Python 庫 logging 記錄訊息

Python 帶有一個內建庫 logging,其唯一目的是幫助實現靈活的事件日誌記錄系統。在本文中,我們不會介紹所有內容,而只會介紹基礎知識和一些基本內容。

使用 logging 時,我們使用 logger 將訊息記錄到控制檯。如上所述,日誌訊息具有指示日誌訊息目的的某些級別。這個圖書館有五個這樣的級別,每個級別都有一個資歷編號。例如,CRITICAL 級別的最高資歷為 50。DEBUG 為 10。INFOWARNINGERROR 分別為 20、30 和 40。

  • DEBUG - 用於列印訊息以除錯應用程式。
  • INFO - 用於列印一般訊息,例如確認、確認和成功訊息。
  • WARNING - 用於報告警告、由於輸入導致的意外事件、未來可能出現的某些問題的指示等。
  • ERROR - 用於警告很可能不會阻止應用程式執行的嚴重問題。
  • CRITICAL - 用於警告可能損害使用者資料、暴露使用者資料、妨礙安全、停止某些服務或可能終止應用程式本身的關鍵問題。

logging 庫具有我們可以用來記錄訊息的函式。要演示,請檢查以下程式碼:

import logging

logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

預設情況下,記錄器不會記錄 debuginfo 級別的日誌訊息。要啟用它們,我們必須為記錄器定義一個級別。以下程式碼執行相同的操作:

import logging

logging.basicConfig(level=logging.NOTSET)  # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

如果級別設定為 INFO,則只會列印所有資歷編號大於等於 INFO 的級別。下面的程式描述了這個過程:

import logging

logging.basicConfig(level=logging.INFO)  # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

basicConfig() 方法可用於定義級別。總的來說,level 引數可以接受六個值。

  • logging.DEBUG # 10
  • logging.INFO # 20
  • logging.WARNING #30
  • logging.ERROR # 40
  • logging.CRITICAL # 50
  • logging.NOTSET # 0

你可以配置更多引數;你可以在這裡閱讀更多關於它們的資訊。

要了解更多資訊,請參閱此列表:

  • filename - basicConfig() 方法有一個 filename 引數,可用於設定檔名,所有訊息都應記錄到該檔名。指定檔名後,日誌訊息將記錄到此檔案而不是控制檯中。
  • filemode - basicConfig() 方法有一個 filemode 引數,用於定義上述檔案的開啟模式。預設情況下,它被設定為"a",這意味著 append。因此,每次執行該程式時,新的日誌訊息都會附加到舊的訊息中。
  • format - basicConfig() 方法有一個 format 引數,可用於格式化日誌訊息結構。預設格式如下所示:<Level>:root:<Message>,將被新格式覆蓋。

如果你想閱讀有關此庫的更多資訊,請參閱此處

作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.