from flask import flask, request
import logging
# 設定日誌輸出到檔案中,而不是顯示到網頁
'propagate_exceptions']=
false
class
requestformatter
(logging.formatter)
:# 自定義日誌格式化類,實現自定義的日誌資訊
defformat
(self, record)
:'''每次生產日誌時都會呼叫,用於生成自定義的日誌資訊'''
try:
record.url = request.url
record.remote_addr = request.remote_addr
except
: record.url =
'null'
record.remote_addr =
'null'
finally
:return
super()
.format
(record)
defcreate_logger()
:)# 使用檔名
# 設定日誌級別
'debug'
)# 2.設定日誌處理器,控制台輸出
console_log_handler = logging.streamhandler(
)# 3.設定日誌格式
console_log_formatter = logging.formatter(fmt=
'%(name)s %(levelname)s %(pathname)s %(lineno)d %(message)s'
) console_log_handler.setformatter(console_log_formatter)
# 4.新增日誌
# 建立轉存檔案處理器
from logging.handlers import rotatingfilehandler
file_log_handler = rotatingfilehandler(filename=
'flask.log'
, maxbytes=
100*
1024
*1024
, backupcount=10)
# 迴圈儲存
# 設定檔案日誌的格式
# 增加format的自定義後,需要用自定義的類requestformatter
file_log_formatter = requestformatter(fmt=
'[%(asctime)s] %(name)s %(levelname)s %(remote_addr)s requested %(url)s %(pathname)s %(lineno)d %(message)s'
) file_log_handler.setformatter(file_log_formatter)
# 單獨設定檔案日誌的級別
file_log_handler.setlevel(
'error'
)# 新增日誌
'/')
defindex()
:# a = 1 / 0
"this is a error log"
)return
'index'
if __name__ ==
'__main__'
: create_logger(
)true
, host=
'0.0.0.0'
, port=
8000
)
flask中logger日誌的使用
日誌是乙個正規系統都應該有的功能,否則當執行良好的系統突然無法正常運轉的時候,你就會束手無策,而有了日誌,你就可以通過日誌檢視其中緣由,從而解決問題。1.python中使用logger非常簡單,可以直接使用 2.我們可以通過設定logger的存貯方式,比如寫入檔案 import logging ha...
Flask 日誌記錄
最近專案需要用到flask日誌模組來記錄日誌,這裡做下記錄 from flask import flask import logging 匯入日誌模組 日誌系統配置 設定日誌檔案,和字元編碼 logging format logging.formatter asctime s levelname s...
Flask自學日誌
flask是使用python編寫的web微框架。web框架可以讓我們不用關心底層的請求響應處理,更方便高效地編寫web程式。因為flask核心簡單且易於擴充套件,所以被稱作微框架 micro framework flask有兩個主要依賴,乙個是wsgi web server gateway inte...