1. 程式人生 > >Django——簡單日誌記錄

Django——簡單日誌記錄

Django使用Python的內建logging模組來執行系統日誌記錄。
主要由四部分組成:

  • loggers
    loggers 是日誌系統的入口點,每一個日誌都是一個以其命名的儲存檔案,日誌資訊經過處理後寫入檔案中
  • Handlers
  • Filters
  • Formatters

loggers 設定的有五種日誌級別,日誌級別描述了將要處理的訊息的嚴重性,級別如下:

  • DEBUG
    用於除錯目的的低級別系統資訊
  • INFO
    一般的系統資訊
  • WARNING
    描述發生的主要問題的資訊
  • ERROR
    描述發生的主要問題的資訊
  • CRITICAL
    描述發生的關鍵問題的資訊

每一條寫入的訊息都是一條日誌,每一條日誌都包括有一個日誌級別。

現在先假設我們已經配置了 loggers Handlers Filters 以及Formatters
下面在程式碼中開始呼叫日誌模組進行日誌的記錄:

import logging

logger = logging.getLogger(__name__)

def index(request):
    logger.info('接收到一條請求資訊:%s'%request.body)
    ...

就這樣,當每次收到請求時,都會將請求資料記錄下來。

下面來看看日誌系統其他部分的配置(在setting檔案中配置):

LOGGING = {
    'version': 1
, 'disable_existing_loggers': False, 'handlers': { 'file': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': '/path/to/django/debug.log', }, }, 'loggers': { 'django': { 'handlers': ['file'], 'level'
: 'DEBUG', 'propagate': True, }, }, }

上面的配置是將django的所有記錄寫入到本地檔案中,日誌檔案的位置需要是django程式使用者可寫的。

在看看另外一條配置,預設情況下django只會將日誌級別不低於 INFO 的訊息輸出到控制檯,這與 django 預設的 debug=true 日誌記錄不同的是,可以通過設定環境變數 DJANGO_LOG_LEVEL=DEBUG 來檢視所有Django的除錯日誌記錄

import os

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
        },
    },
}

基礎的配置大概就是這樣得了