在项目根目录 api 前进行拦截:
@app.before_request def requestInterceptor(): if request.path !='/': #get the request body value str_header = request.headers.environ browser_version = str_header['HTTP_SEC_CH_UA'].replace(" ","_") osversion = str_header['HTTP_USER_AGENT'].replace(" ","_") strbodyvalue = str(request.values.to_dict()) #get the request params value str_params =json.dumps(request.args) strmessage = " browserVersion="+browser_version+" osversion="+osversion+" path="+str(request.url_rule)+" bodyValue=" + strbodyvalue +" paramsValue=" +str_params logger.info(strmessage)
配置log :logger.py
import logging from logging.handlers import RotatingFileHandler import uuid import time def info(message): """ """ # config the level of log logging.basicConfig(level=logging.INFO) # create the name of log file and handler for log log_file_name = 'logger-' + time.strftime('%Y-%m-%d', time.localtime(time.time())) + '.log' file_log_handler = RotatingFileHandler(log_file_name, maxBytes=1024*1024*100,backupCount=100) # The log information and formatter of log formatterStr = " service_name=mid_dashboard "+" traceId=" + str(trace_id()) formatter = logging.Formatter("%(asctime)s" + formatterStr + message + " response="+"%(message)s") # set formatter for handler file_log_handler.setFormatter(formatter) # add handler for logging logging.getLogger().addHandler(file_log_handler) # create random uuid as trace id def trace_id(): return uuid.uuid1()