色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Django項目如何正確配置日志(logging)

瀏覽:5日期:2024-09-09 08:55:51

當Django項目正式部署上線后,我們需要設置DEBUG = False。這時開發者應怎樣檢查Django程序在生產環境運行時有什么異常或錯誤呢?答案就是日志(logging)。在生產環境中,Django默認是不會在服務器上自動生成log文件的,即使程序出現error級別的故障也不會通知管理員。本文將教你如何在Django項目中正確配置日志(logging),讓Django生成log日志文件,并在程序運行發生error級別故障時通知管理員。

日志基礎知識

日志與我們的軟件程序密不可分。它記錄了程序的運行情況,可以給我們調試程序和故障排查提供非常有用的信息。每一條日志信息記錄了一個事件的發生。具體而言,它包括了:

事件發生時間 事件發生位置 事件的嚴重程度--日志級別 事件內容

日志的級別又分為:

DEBUG:用于調試目的的低級系統信息 INFO:一般系統信息 WARNING:描述已發生的小問題的信息。 ERROR:描述已發生的主要問題的信息。 CRITICAL:描述已發生的嚴重問題的信息。

在Django項目中,我們可以針對日志的不同級別設置不同的處理方式。比如INFO級別及以上的日志我們寫入到log文件里保存,Error級別及以上的日志我們直接通過郵件發送給系統管理員。

Django的日志模塊

Django的日志模塊其實就是python的logging模塊。它由4部分組成:

Logger 記錄儀:生成和記錄每條日志信息及級別 Handler處理程序: 根據日志信息級別交由相應處理程序處理(比如生成文件或發送郵件) Filters 過濾器:日志交由處理程序處理前需要滿足的過濾條件(比如Debug=True或False) Formaters 格式化程序:決定每條日志的打印輸出格式,可以有完整版的,也有簡單版的

一個logger記錄儀的例子如下所示。當程序運行出現錯誤時,它生成了一條級別為error的日志信息。這條記錄產生后就會交由Handler處理。

# import the logging libraryimport logging# 獲得logger實例logger = logging.getLogger(__name__)def my_view(request, arg1, arg): ... if error_happens:# Log an error messagelogger.error(’Something went wrong!’)

當Debug=True時,日志信息默認在console輸出?,F在我們還需要在django配置文件里配置日志(logging)相關內容,使得當Debug=False時,日志信息會輸出到日志文件里或發送給系統管理員。

settings.py推薦日志配置信息

以下基本配置信息在django cookiecutter推薦使用的logging配置信息上做了修改,可適合大部分項目使用。如果真的希望發送和接收到郵件還需在settings.py正確配置電子郵箱Email。

# 給ADMINS發送郵件需要配置ADMINS = ( (’admin_name’,’your@gmail.com’),)MANAGERS = ADMINS# 創建log文件的文件夾LOG_DIR = os.path.join(BASE_DIR, 'logs')# 基本配置,可以復用的LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'formatters': { # 定義了兩種日志格式'verbose': { # 標準 'format': '%(levelname)s %(asctime)s %(module)s ' '%(process)d %(thread)d %(message)s'},’simple’: { # 簡單 ’format’: ’[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s’}, }, 'handlers': { # 定義了三種日志處理方式'mail_admins': { # 只有debug=False且Error級別以上發郵件給admin 'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler',},’file’: { # Info級別以上保存到日志文件 ’level’: ’INFO’, ’class’: ’logging.handlers.RotatingFileHandler’, # 保存到文件,根據文件大小自動切 ’filename’: os.path.join(LOG_DIR,'info.log'), # 日志文件 ’maxBytes’: 1024 * 1024 * 10, # 日志大小 10M ’backupCount’: 2, # 備份數為 2 ’formatter’: ’simple’, # 簡單格式 ’encoding’: ’utf-8’,},'console': { # 打印到終端console 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'verbose',}, }, 'root': {'level': 'INFO', 'handlers': ['console']}, 'loggers': {'django.request': { # Django的request發生error會自動記錄 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True, # 向不向更高級別的logger傳遞},'django.security.DisallowedHost': { # 對于不在 ALLOWED_HOSTS 中的請求不發送報錯郵件 'level': 'ERROR', 'handlers': ['console', 'mail_admins'], 'propagate': True,}, },}

以上就是Django項目如何正確配置日志(logging)的詳細內容,更多關于Django 正確配置日志的資料請關注好吧啦網其它相關文章!

標簽: Django
相關文章:
主站蜘蛛池模板: 国产精品91在线播放 | 国产亚洲一区二区三区不卡 | 久久精品男人的天堂 | a毛片基地免费全部香蕉 | 午夜在线影院 | 99re最新这里只有精品 | 手机在线看片国产日韩生活片 | 日本欧美一级二级三级不卡 | 国产人成久久久精品 | 国产大片中文字幕在线观看 | 国产三级三级三级 | 国产色司机在线视频免费观看 | 天堂8中文在线 | 国产视频二 | 久草视频免费在线播放 | 免费99视频有精品视频高清 | 国产国模福利视频 | 欧美国产高清欧美 | a级毛片免费 | 亚洲精品久久一区影院 | 小明台湾成人永久免费看看 | 不卡午夜视频 | 一级亚洲 | 成人免费视频日本 | 国产一级淫片a免费播放口之 | 欧美精品久久久久久久久大尺度 | 伊人久热这里只有精品视频99 | 欧美亚洲一区二区三区在线 | 亚洲国产精品免费观看 | 欧美韩国日本一区 | 欧美日韩亚洲一区二区三区在线观看 | 欧美黑人性xxx猛交 欧美很黄视频在线观看 | 欧美乱爱 | 国产一级aaa全黄毛片 | 欧美亚洲国产精品久久久 | 日本一级做人免费视频 | 在线观看国产一区二区三区99 | 三级韩国一区久久二区综合 | 手机在线观看一级午夜片 | 综合色久七七综合七七蜜芽 | 刺激免费视频 |