所有開發人員都會遇到這些錯誤,解決這些問題需要一些時間。
當我們知道了實際問題,當錯誤發生時,就變得更有幫助了。這意味著 Python 的錯誤消息非常有幫助。
在本教程中,我們將討論日誌模塊以及如何在 Django 中實現它。該模塊提供了許多優勢。作為一名 Django 開發人員,掌握日誌記錄也很重要。Django 為各種日誌框架和模塊提供了出色的支持。
讓我們先簡單介紹一下日誌模塊。
什麼是日誌記錄?
日誌是一種允許開發人員在軟體執行時跟蹤一些事件的技術。它是開發人員最重要的工具。日誌有助於維護軟體,並作為開發人員的額外眼睛。
它跟蹤任何時候發生的每一個事件。實現日誌模塊後,我們可以很容易地找到哪個部分拋出了錯誤。這種方法可以讓我們快速解決錯誤。
它是如何工作的?幕後
一個單獨的程序處理日誌記錄,該日誌記錄程序只是一個文件寫入程序。據說記錄器以文本格式記錄某些事件。記錄的信息隨後保存在文件中。這些文件稱為日誌,並以日誌擴展名保存。它們包含所發生事件的日誌。
Python 提供了日誌模塊,它附帶了額外的功能。我們將討論日誌模塊的各種特性。日誌模塊可以處理以下任務-
- 多線程執行。
- 通過不同的日誌級別對消息進行分類。
- 它更加靈活和可配置。
- 給出更多結構化信息。
如果您想了解更多關於日誌模塊的信息,請訪問我們 Python 中的日誌模塊教程。
日誌模塊的組件
日誌模塊主要有四個組件。我們將在下面討論每個組件。
- 伐木工
開發商與日誌記錄器打交道;它與調用它們時將調用的函數相同。當我們調用該函數時,它會提供一個詳細的報告。記錄器可以生成多級響應。
我們也可以根據自己的要求進行修改。
- 處理器
處理程序用於產生信息。它就像一份傳遞信息的報紙。我們可以通過在日誌文件中提及信息來實現這一點(默認行為)。日誌模塊提供了許多進程程序。
同一個記錄器可以實現多個處理程序。SMTP 處理程序也可用,它將為我們發送日誌記錄。處理程序通常包含用於記錄信息的業務邏輯。
- 過濾器
過濾器用於處理從記錄器傳遞到處理程序的日誌記錄。顧名思義,它過濾信息。多個消息可以有多個處理程序。默認情況下,將處理符合日誌級別要求的任何日誌消息。
我們可以對記錄器和處理程序使用過濾器。
- 格式化程序
格式化程序用于格式化數據。處理程序的問題是它們不能以 Python 數據類型發送信息。要發送這種類型的信息,我們需要先轉換。
默認情況下,日誌採用日誌記錄格式,日誌記錄模塊對其進行預定義。我們可以直接通過互聯網或文本文件的形式發送信息。要轉換格式,我們需要格式化程序。
在 Django 登錄
登錄模塊可以在 Django 中輕鬆實現,並且可以輕鬆配置。
要使用 Django 中的記錄器,我們需要遵循以下步驟。
- settings.py 文件將配置各種記錄器、處理程序和過濾器。
- 我們需要在 Django 的視圖或任何其他模塊中包含記錄器代碼。
讓我們開始在 Django 使用記錄器的過程。
創建新項目
記錄器可以在現有項目中實現。但是,您可以創建一個新項目來更好地理解它。使用下面的命令在 Django 創建一個新項目。
django-admin startproject javatpoint
上面的命令將創建項目。現在,我們將配置 settings.py 項目。
配置設置
\這是在 Django 實現記錄器的第一步。配置設置非常容易。我們需要定義以下內容-
- 記錄器
- 經理人
- 過濾
- 格式化程序
我們使用 dictConfig 方法,但是還有其他方法可用。但是 dictConfig 方法是 Django 的默認方法。複製下面的代碼並粘貼到 settings.py 中。
# JavaTpoint #Logging Information
LOGGING = {
'version': 1,
# Version of logging
'disable_existing_loggers': False,
#disable logging
# Handlers #############################################################
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'loggerDjango-debug.log',
},
########################################################################
'console': {
'class': 'logging.StreamHandler',
},
},
# Loggers ####################################################################
'loggers': {
'django': {
'handlers': ['file', 'console'],
'level': 'DEBUG',
'propagate': True,
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')
},
},
}
讓我們分解上面的代碼-
代碼可能看起來龐大而複雜,但很容易理解。我們有一個內置變數 LOGGING 來自 Django。因為我們使用名為字典配置的方法來配置設置。日誌記錄的默認值來自該字典。
以下是位於 LOGGING 字典中的一些重要關鍵字。
以下是位於日誌字典中的一些重要關鍵字。
- 版本
- 禁用現有記錄器
- 經理人
- 記錄器
版本鍵指定模式版本。它有值,預設值是 1。
下一個鍵是disable exing logger,,它指定不要禁用 logger。默認情況下,Django 自帶記錄器。這些日誌記錄器與 Django ORM 和 Django 內部有聯繫。默認情況下,該鍵為真,因此它會禁用這些記錄器。
第三個鍵是 Handlers。如上所述,處理程序處理消息並將其傳遞給控制台、文件等。處理程序本身就是一本字典。處理程序的名稱被定義為字典鍵。記錄器提供了許多進程程序,但是我們將在這裡使用這兩個處理程序。
1。文件處理程序:日誌-名稱文件處理程序
文件處理程序將日誌存儲在一個文件中。從上面的代碼中可以看到,我們給了文件名 javatpoint-debug.log 。日誌文件一般以擴展名存儲。我們需要有許可權才能對其進行更改。
2。StreamHandler:記錄器名稱-控制台
流處理程序將在控制台上流式傳輸日誌。不建議使用此方法。在命令行顯示日誌之前,字元數是有限制的。在大日誌的情況下,我們需要數據文件處理器。
處理程序較多,如郵件處理程序、AdminEmailHandlers 等。
記錄器將記錄伺服器或軟體信息。記錄器也是一種字典類型。它具有與處理程序相似的體系結構。但是,有不同的屬性和其他屬性。
Django 附帶了一組記錄器,如 django、django.requests、等。
現在輸入以下命令,然後按回車鍵。
python manage.py runserver
它將創建一系列日誌,這是因為默認的調試級別。所有這些日誌實際上都是來自默認記錄器的消息。我們還可以在連續的文件中創建自定義記錄器。如下圖所示,javapoint-debug . log 文件已經創建,它包含了所有的日誌記錄。
有大量日誌錯誤或警告或以上級別應通知。
結論
日誌是開發人員的重要工具。如果程序員正確實現,可以降低複雜度,節省大量時間。日誌處理程序可以很容易地處理日誌,並且可以很容易地跟蹤事件,不管它是否發生,以及原因。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/235827.html