django中日志模塊logging的配置和使用方式
一、文件的配置
settings.py文件中添加LOGGING塊的配置,配置如下:
# 日志記錄
LOGGING = {
"version": 1,
"disable_existing_loggers": False, # 用于確定在應(yīng)用新的日志配置時(shí)是否禁用之前配置的日志器
# 格式器
"formatters": {
"verbose": { # 輸出日志級(jí)別名稱、日志信息,以及生成日志信息的時(shí)間、進(jìn)程、線程和模塊。format格式化輸出
"format": "{levelname} {asctime} {module} {process:d} {thread:d} {message}",
"style": "{",
},
"simple": { # 輸出日志級(jí)別名稱和日志信息。
"format": "{levelname} {message}",
"style": "{",
},
},
# 過(guò)濾器
"filters": {
"require_debug_true": {
"()": "django.utils.log.RequireDebugTrue", # 當(dāng)DEBUG為True時(shí),傳遞記錄。
},
},
# 處理器
"handlers": {
"console": { # 輸出到終端
"level": "INFO", # 日志級(jí)別
"filters": ["require_debug_true"], # 使用的過(guò)濾器,上邊已經(jīng)定義
"class": "logging.StreamHandler", # 用于將日志消息發(fā)送到一個(gè)流,通常是一個(gè)輸出流,比如控制臺(tái)(標(biāo)準(zhǔn)輸出)
"formatter": "simple", # 格式器,上邊有定義
},
"file": { # 輸出到文件
"level": "INFO", # 日志級(jí)別
"class": "logging.handlers.RotatingFileHandler", # 將日志輸出到一個(gè)文件中
"filename": os.path.join(BASE_DIR, 'logs/mall.log'), # 日志輸出的文件, os.path.join用來(lái)拼接路徑
"maxBytes": 300 * 1024 * 1024, # 一個(gè)文件300M
"backupCount": 10, # 備份10個(gè)文件
"formatter": "verbose", # 格式器
},
},
"loggers": { # 日志器
"django": { # 創(chuàng)建的日志記錄器
"handlers": ["console", 'file'], # 處理方式:在終端輸出、輸出到文件
"propagate": True, # 日志沒(méi)有被處理,日志消息將向上傳遞給上級(jí)記錄器
'level': 'INFO', # 日志輸出最低級(jí)別,低于這個(gè)將不會(huì)輸出
},
},
}二、記錄器的使用
1、導(dǎo)入日志模塊
import logging
2、創(chuàng)建日志記錄器
'django'在settings文件中已創(chuàng)建,可以自行創(chuàng)建
logger=logging.getLogger('django')3、調(diào)用方法保存日志
logger.error("文件不存在")
logger.info("正常訪問(wèn)")
logger.warning('redis緩存空間不足')
logger.debug("1111")具體的代碼

4、訪問(wèn)結(jié)果
只有級(jí)別大于等于INFO的日志記錄才顯示
終端中顯示:

日志文件中顯示

三、日志級(jí)別介紹
- DEBUG:排查故障時(shí)使用的低級(jí)別系統(tǒng)信息
- INFO:一般的系統(tǒng)信息
- WARNING:描述系統(tǒng)發(fā)生了一些小問(wèn)題的信息
- ERROR:描述系統(tǒng)發(fā)生了大問(wèn)題的信息
- CRITICAL:描述系統(tǒng)發(fā)生嚴(yán)重問(wèn)題的信息
- 日志級(jí)別:CRITICAL > ERROR > WARNING > INFO > DEBUG, 只有當(dāng)日志消息級(jí)別大于等于設(shè)置好的日志級(jí)別,日志消息才會(huì)被記錄
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
對(duì)Python中列表和數(shù)組的賦值,淺拷貝和深拷貝的實(shí)例講解
今天小編就為大家分享一篇對(duì)Python中列表和數(shù)組的賦值,淺拷貝和深拷貝的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能
這篇文章主要介紹了python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12
總結(jié)Python圖形用戶界面和游戲開(kāi)發(fā)知識(shí)點(diǎn)
在本篇文章里小編給大家整理了關(guān)于Python圖形用戶界面和游戲開(kāi)發(fā)知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們學(xué)習(xí)下。2019-05-05
Python中的set可變集合與frozenset不可變集合的終極指南
這篇文章主要為大家詳細(xì)介紹了Python中set與frozenset的區(qū)別與應(yīng)用,set是可變集合,支持增刪元素和自動(dòng)去重,frozenset是不可變集合,下面小編就來(lái)和大家詳細(xì)介紹一下吧2026-02-02
Ubuntu下Python2與Python3的共存問(wèn)題
Linux系統(tǒng)一般自帶Python,有時(shí)候又自己下載了Python,因此有可能Python2和Python3同時(shí)存在。那么當(dāng)我們?cè)赥erminal鍵入python的時(shí)候,會(huì)調(diào)出哪個(gè)Python呢?本文即解決這個(gè)問(wèn)題2018-10-10

