diff --git a/main.py b/main.py index 4997ace..1c3f61d 100644 --- a/main.py +++ b/main.py @@ -144,44 +144,6 @@ redis_client = redis.Redis(host="localhost", port=6379, db=0) # influx_org_name = influxdb_info.org # influx_client = InfluxDBClient(url=influx_url, token=influx_token, org=influx_org_name, timeout=100*1000) # 100 seconds -def setup_logger(): - # 创建日志目录 - log_dir = "logs" - os.makedirs(log_dir, exist_ok=True) - - # 配置基础日志格式 - log_format = "%(asctime)s - %(levelname)s - %(message)s" - formatter = logging.Formatter(log_format) - - # 创建主 Logger - logger = logging.getLogger() - logger.setLevel(logging.INFO) # 全局日志级别 - - # --- 1. 按日期分割的日志文件 Handler --- - log_file = os.path.join(log_dir, "fastapi.log") - file_handler = TimedRotatingFileHandler( - filename=log_file, - when="midnight", # 每天午夜轮转 - interval=1, - backupCount=7, - encoding="utf-8" - ) - file_handler.suffix = "fastapi-%Y-%m-%d.log" # 文件名格式 - file_handler.setFormatter(formatter) - file_handler.setLevel(logging.INFO) # 文件记录所有级别日志 - - # --- 2. 控制台实时输出 Handler --- - console_handler = logging.StreamHandler() # 默认输出到 sys.stderr (控制台) - console_handler.setFormatter(formatter) - console_handler.setLevel(logging.INFO) # 控制台仅显示 INFO 及以上级别 - - # 将 Handler 添加到 Logger - logger.addHandler(file_handler) - # logger.addHandler(console_handler) - - return logger - -logger = setup_logger() # 配置 CORS 中间件 app.add_middleware( @@ -208,51 +170,8 @@ async def receive_with_body(body: bytes) -> Receive: return receive -@app.middleware("http") -async def log_requests(request: Request, call_next): - if request.url.path == "/favicon.ico": - return Response(status_code=204) - - # 记录接收请求的时间 - request_time = time.time() - request_time_str = datetime.fromtimestamp(request_time).strftime('%Y-%m-%d %H:%M:%S') - - # 判断是否为文件上传 - is_file_upload = request.headers.get("content-type", "").startswith("multipart/form-data") - - # 记录接收的请求数据 - logger.info(f"Received request: {request.method} {request.url} at {request_time_str}") - if not is_file_upload: - request_body = await request.body() - logger.info(f"Request body: {request_body.decode('utf-8')}") - - # 创建新的 Request 对象,传递缓存的请求体 - receive = await receive_with_body(request_body) - request = Request(request.scope, receive=receive) - else: - logger.info(f"Request body: File") - - # 处理请求 - response = await call_next(request) - - # 记录发送响应的时间 - response_time = time.time() - response_time_str = datetime.fromtimestamp(response_time).strftime('%Y-%m-%d %H:%M:%S') - processing_time = response_time - request_time - - # 记录发送的响应数据 - # response_body = b"" - # async for chunk in response.body_iterator: - # response_body += chunk - - # 记录响应的状态码以及是否成功 - success_status = response.status_code < 400 - logger.info(f"Response status: {response.status_code} at {response_time_str}, success: {success_status}") - # logging.info(f"Response body: {response_body.decode('utf-8')}") - logger.info(f"Processing time: {processing_time:.3f} seconds") - - return response - +logger = logging.getLogger() +logger.setLevel(logging.INFO) @app.on_event("startup") async def startup_db():