日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django Logging

發布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django Logging 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Django Logging

組成部分

  Loggers

  Handlers

  Filters

  Formatters

Loggers

  loggers是記錄系統的入口。他具有日志級別,定義的日志級別如下

    DEBUG:用于調試目的的低級系統信息

    INFO: 一般系統信息

    WARNING: 警告信息

    ERROR:錯誤信息

    CRITICAL:關鍵錯誤信息

    NOTEST: 記錄所有

  寫入logger的每條消息都是日志記錄。每個日志記錄還具有一個日志級別,表示該消息的嚴重性。日志記錄還可以包含描述正在記錄會見的有用元數據。這可以包括諸如堆棧跟蹤或錯誤代碼之類的詳細信息。

  如果消息日志級別達到或超過loggers本身的日志級別,則進行下一步處理,如果沒有,則忽略。

  一旦記錄器確定需要處理消息,他就會傳遞給Handler。

Handler

  Handler是負責進行處理。例如將消息寫入屏幕,文件或者socket。

  Handler也具有日志級別,如果未達到Handeler的日志級別,則忽略

  loggers可以有多個Handler,可以定義不同的日志級別。

Filters

  Filters用于提供對從loggers到Handler的日志記錄傳遞的額外控制。

  默認情況下,處理所有滿足日志級別要求的任何日志消息。也可以自定義其他條件

Formatters

  格式化輸出。格式化程序通常由包含LogRecord屬性的Python格式化字符串組成

配置日志記錄

  默認情況下Django使用dictConfig格式,配置日志記錄。

  參考網址

    https://docs.python.org/3/library/logging.handlers.html

  dictConfig必填

    version 目前唯一有效的值為1

   其他都是可選的

  如果dictConfig中的disable_existing_loggersLOGGING設置為True(默認值),則將禁用默認配置中的所有記錄器。已禁用的記錄器與已刪除的記錄器不同;?記錄器仍然存在,但會默默地丟棄記錄到它的任何內容,甚至不會將條目傳播到父記錄器。因此你應該非常小心使用;?它可能不是你想要的。相反,您可以設置到和重新定義的部分或全部的默認記錄器;?或者您可以設置?到和處理日志記錄配置己'disable_existing_loggers':?Truedisable_existing_loggersFalseLOGGING_CONFIGNone

  示例文件

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,},}, }

  ?

logging.FileHandler 發送日志輸出到磁盤文件 logging.StreamHandler 發送日志輸出sys.stdout的,sys.stderr或任何類文件對象
logging.NullHandler 不做任何輸出 propagate 向上級傳遞 logging.handlers.RotatingFileHandler 根據日志大小進行日志輪詢

代碼中打印日志 import logging logger = logging.getLogger("django") logger.info("hello word!")

?



?

?

?

?打印日志輸出到屏幕

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

?

復雜的日志格式

LOGGING = {'version': 1,'disable_existing_loggers': False,'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'},'simple': {'format': '%(levelname)s %(message)s'},},'filters': {'special': {'()': 'project.logging.SpecialFilter','foo': 'bar',},'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue',},},'handlers': {'console': {'level': 'INFO','filters': ['require_debug_true'],'class': 'logging.StreamHandler','formatter': 'simple'},'mail_admins': {'level': 'ERROR','class': 'django.utils.log.AdminEmailHandler','filters': ['special']}},'loggers': {'django': {'handlers': ['console'],'propagate': True,},'django.request': {'handlers': ['mail_admins'],'level': 'ERROR','propagate': False,},'myproject.custom': {'handlers': ['console', 'mail_admins'],'level': 'INFO','filters': ['special']}} }

?

  

  

轉載于:https://www.cnblogs.com/lfdblog/p/10033403.html

總結

以上是生活随笔為你收集整理的Django Logging的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。