首頁 >後端開發 >Python教學 >Django 使用logging列印日誌的實例

Django 使用logging列印日誌的實例

不言
不言原創
2018-04-28 10:07:392624瀏覽

下面為大家分享一篇Django 使用logging列印日誌的實例,具有很好的參考價值,希望對大家有幫助。一起來看看吧

Django使用python自帶的logging 作為日誌列印工具。簡單介紹下logging。

logging 是線程安全的,其主要由4部分組成:

#Logger

使用者使用的直接接口,將日誌傳遞給Handler

Handler

#控制日誌輸出到哪裡,console,file…

一個logger可以有多個Handler

Filter

控制哪些日誌可以從logger流向Handler

##Formatter

控制日誌的格式

使用者使用logging.getLogger([name])取得logger實例。

如果沒有名字,回傳logger層級中的根logger(root logger)。以相同名字呼叫該函數總是傳回同一個logger實例。這意味著logger實例不需要在應用程式的各個部分之間傳來傳去。

Django透過在settings檔案中使用LOGGING來自訂日誌輸出(包括定義logger, handler, formatter等)

例如,settings檔案中定義如下:

LOGGING = {
 'version': 1,
 'disable_existing_loggers': False,
 'formatters': {
  'verbose': {
   'format': '[%(asctime)s] [%(levelname)s] %(message)s'
  },
 },
 'handlers': {
  'console':{
   'level':'INFO',
   'class':'logging.StreamHandler',
   'formatter': 'verbose'
  },
  'file': {
   'level': 'INFO',
   'class': 'logging.FileHandler',
   'filename': 'D:/monitor.log',
   'formatter': 'verbose'
  },
  'email': {
   'level': 'ERROR',
   'class': 'django.utils.log.AdminEmailHandler',
   'include_html' : True,
  }
 },
 'loggers': {
  'django': {
   'handlers': ['console', 'file', 'email'],
   'level': 'INFO',
   'propagate': True,
  },
 },
}

程式碼中列印日誌:

logger = logging.getLogger(‘django')
logger.info(“This is an error msg”)

[2017-07-15 17:44:51,316] [ERROR] This is an error msg##這樣,日誌就被印到終端機和檔案。

關於django logging 想了解更多,可參考官網

https://docs.djangoproject.com/en/1.11/topics/logging/

相關推薦:


Django如何載入css和js檔案以及靜態圖片


##

以上是Django 使用logging列印日誌的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn