Django——簡單日誌記錄
阿新 • • 發佈:2019-01-05
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'),
},
},
}
基礎的配置大概就是這樣得了