django中日志模塊logging的配置和使用方式
更新時間:2025年01月20日 09:08:03 作者:_BooI
文章主要介紹了如何在Django項目的`settings.py`文件中配置日志記錄,并使用日志模塊記錄不同級別的日志,日志級別包括DEBUG、INFO、WARNING、ERROR和CRITICAL,級別越高,記錄的日志越詳細,通過配置和使用日志記錄器,可以更好地排查和監(jiān)控系統(tǒng)問題
一、文件的配置
settings.py文件中添加LOGGING塊的配置,配置如下:
# 日志記錄 LOGGING = { "version": 1, "disable_existing_loggers": False, # 用于確定在應用新的日志配置時是否禁用之前配置的日志器 # 格式器 "formatters": { "verbose": { # 輸出日志級別名稱、日志信息,以及生成日志信息的時間、進程、線程和模塊。format格式化輸出 "format": "{levelname} {asctime} {module} {process:d} {thread:d} {message}", "style": "{", }, "simple": { # 輸出日志級別名稱和日志信息。 "format": "{levelname} {message}", "style": "{", }, }, # 過濾器 "filters": { "require_debug_true": { "()": "django.utils.log.RequireDebugTrue", # 當DEBUG為True時,傳遞記錄。 }, }, # 處理器 "handlers": { "console": { # 輸出到終端 "level": "INFO", # 日志級別 "filters": ["require_debug_true"], # 使用的過濾器,上邊已經(jīng)定義 "class": "logging.StreamHandler", # 用于將日志消息發(fā)送到一個流,通常是一個輸出流,比如控制臺(標準輸出) "formatter": "simple", # 格式器,上邊有定義 }, "file": { # 輸出到文件 "level": "INFO", # 日志級別 "class": "logging.handlers.RotatingFileHandler", # 將日志輸出到一個文件中 "filename": os.path.join(BASE_DIR, 'logs/mall.log'), # 日志輸出的文件, os.path.join用來拼接路徑 "maxBytes": 300 * 1024 * 1024, # 一個文件300M "backupCount": 10, # 備份10個文件 "formatter": "verbose", # 格式器 }, }, "loggers": { # 日志器 "django": { # 創(chuàng)建的日志記錄器 "handlers": ["console", 'file'], # 處理方式:在終端輸出、輸出到文件 "propagate": True, # 日志沒有被處理,日志消息將向上傳遞給上級記錄器 'level': 'INFO', # 日志輸出最低級別,低于這個將不會輸出 }, }, }
二、記錄器的使用
1、導入日志模塊
import logging
2、創(chuàng)建日志記錄器
'django'在settings文件中已創(chuàng)建,可以自行創(chuàng)建
logger=logging.getLogger('django')
3、調用方法保存日志
logger.error("文件不存在") logger.info("正常訪問") logger.warning('redis緩存空間不足') logger.debug("1111")
具體的代碼
4、訪問結果
只有級別大于等于INFO的日志記錄才顯示
終端中顯示:
日志文件中顯示
三、日志級別介紹
- DEBUG:排查故障時使用的低級別系統(tǒng)信息
- INFO:一般的系統(tǒng)信息
- WARNING:描述系統(tǒng)發(fā)生了一些小問題的信息
- ERROR:描述系統(tǒng)發(fā)生了大問題的信息
- CRITICAL:描述系統(tǒng)發(fā)生嚴重問題的信息
- 日志級別:CRITICAL > ERROR > WARNING > INFO > DEBUG, 只有當日志消息級別大于等于設置好的日志級別,日志消息才會被記錄
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python實現(xiàn)采用進度條實時顯示處理進度的方法
這篇文章主要介紹了Python實現(xiàn)采用進度條實時顯示處理進度的方法,涉及Python數(shù)學運算結合時間函數(shù)顯示進度效果的相關操作技巧,需要的朋友可以參考下2017-12-12