Django 的日誌記錄器

所有開發人員都會遇到這些錯誤,解決這些問題需要一些時間。

當我們知道了實際問題,當錯誤發生時,就變得更有幫助了。這意味着 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. 版本
  2. 禁用現有記錄器
  3. 經理人
  4. 記錄器

版本鍵指定模式版本。它有值,缺省值是 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-hant/n/235827.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 11:56
下一篇 2024-12-12 11:56

相關推薦

  • Cron執行日誌用法介紹

    本文將從多個方面對cron執行日誌進行詳細闡述,包括cron執行日誌的定義、cron執行日誌的產生原因、cron執行日誌的格式以及如何解讀cron執行日誌。 一、定義 Cron是一…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Django ORM如何實現或的條件查詢

    在我們使用Django進行數據庫操作的時候,查詢條件往往不止一個,一個好的查詢語句需要考慮我們的查詢要求以及業務場景。在實際工作中,我們經常需要使用或的條件進行查詢,本文將詳細介紹…

    編程 2025-04-29
  • Log4j日誌打印到Systemout.log

    Log4j是Apache的一個強大的日誌組件,可以幫助開發者更好地管理日誌。在Java應用程序中,很多開發者都會選擇使用Log4j來實現日誌輸出。本文將介紹如何使用Log4j將日誌…

    編程 2025-04-28
  • 如何將Linux系統日誌發送到日誌服務器

    本文將介紹如何將Linux系統日誌發送到日誌服務器,以方便管理和監控系統狀態。 一、安裝rsyslog軟件包 rsyslog是Linux系統上默認的系統日誌軟件,用於收集系統事件和…

    編程 2025-04-27
  • SpringBoot如何設置不輸出Info日誌

    本篇文章將帶您了解如何在SpringBoot項目中關閉Info級別日誌輸出。 一、為什麼要關閉Info日誌 在開發中,我們經常會使用Log4j、Logback等框架來輸出日誌信息,…

    編程 2025-04-27
  • Django項目中執行Python腳本

    本文將闡述在Django項目中如何執行Python腳本以及執行腳本的幾種方式。 一、subprocess模塊執行Python腳本 subprocess模塊提供了一個簡單的接口用於創…

    編程 2025-04-27
  • Python Django Channels用法介紹

    本文將從多個方面對Python Django Channels進行詳細的講解,包括介紹、使用、優缺點以及實際應用等,幫助大家更好地理解和應用Python Django Channe…

    編程 2025-04-25
  • Mybatis-plus 日誌詳解

    一、日誌框架概述 1、什麼是日誌框架 日誌框架是一個用於管理日誌的工具,使用日誌框架可以幫助開發人員記錄程序運行時產生的信息、警告和錯誤消息。常用的日誌框架有log4j和logba…

    編程 2025-04-24

發表回復

登錄後才能評論