專案中有用到 flask 寫的部分介面,但是最近一直不是太穩定,所以想到記錄執行、請求日誌。對服務進行監測。
**
**部分比較簡單,因為官方文件有日誌這塊的說明,可以直接使用 logging 進行輸出日誌。
具體**:
from flask importflask
import
logging
from time import
strftime,localtime,time
importos#
建立日誌資料夾
defmake_dir(dir_path):
temp_path =dir_path.strip()
ifnot
os.path.exists(temp_path):
os.makedirs(temp_path)
return
temp_path
#logging.basicconfig(level=logging.debug)/'
)log_dir_path = '
logs
'log_file_name = '
logger-
' + time.strftime('
%y-%m-%d
',time.localtime(time.time())) + '
.log
'log_file_folder = os.path.abspath(os.path.join(os.path.dirname(__file__),os.pardir,os.pardir)) + os.sep +log_dir_path
make_dir(log_file_folder)
log_file_str = log_file_folder + os.sep +log_file_name
#設定日誌字符集和儲存路徑
file_log_fandler = logging.filehandler(log_file_str,encoding='
utf-8')
#file_log_fandler = rotatingfilehandler('logs/log',maxbytes=1024*1024*10,backupcount=100)
#設定日誌格式
logging_format = logging.formatter('
%(asctime)s - %(levelname)s - %(filename)s - %(funcname)s - %(lineno)s - %(message)s')
file_log_fandler.setformatter(logging_format)"/
")defindex():
'info log')
'warning log')
return
'hello world!'if
__name__ == '
__main__
':
注意
1、time 下的函式報錯:attributeerror: 'builtin_function_or_method' object has no attribute 'strftime'
這裡需要將
importtime#換成
from time import strftime
2、日誌 addhandler 的位置
開始是把這一部分放在了 __name__ == '__man__' 下面,直接執行python檔案可以,但是使用 flask run 沒有效果。
所以這裡要注意:flask run 執行時不會執行 __name == '__main__' 下的**。
最後,直接把 addhandler 放在 flask 初始化後面
3、nohup 日誌和 logger 對比
專案中是直接使用 falsk 命令列執行,不是通過 ngixn,所以用了 nohup
nohup 會記錄對應輸入資訊,這裡用 logger 記錄只是為了自己需要的進行單獨輸出,便於監測
參考
官方日誌
flask 使用日誌
flask 日誌配置
Flask 日誌記錄
最近專案需要用到flask日誌模組來記錄日誌,這裡做下記錄 from flask import flask import logging 匯入日誌模組 日誌系統配置 設定日誌檔案,和字元編碼 logging format logging.formatter asctime s levelname s...
Flask新增日誌檔案
flask新增日誌檔案 首先我需要在專案資料夾中新增乙個logs的python package 然後在cars的 init 檔案中新增以下字段 import logging from logging.handlers import rotatingfilehandler setup logging ...
Flask自學日誌
flask是使用python編寫的web微框架。web框架可以讓我們不用關心底層的請求響應處理,更方便高效地編寫web程式。因為flask核心簡單且易於擴充套件,所以被稱作微框架 micro framework flask有兩個主要依賴,乙個是wsgi web server gateway inte...