mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-05 08:37:06 +08:00
[BugFix] fix logger (#3666)
This commit is contained in:
@@ -47,6 +47,7 @@ from fastdeploy.entrypoints.openai.serving_chat import OpenAIServingChat
|
|||||||
from fastdeploy.entrypoints.openai.serving_completion import OpenAIServingCompletion
|
from fastdeploy.entrypoints.openai.serving_completion import OpenAIServingCompletion
|
||||||
from fastdeploy.entrypoints.openai.serving_models import ModelPath, OpenAIServingModels
|
from fastdeploy.entrypoints.openai.serving_models import ModelPath, OpenAIServingModels
|
||||||
from fastdeploy.entrypoints.openai.tool_parsers import ToolParserManager
|
from fastdeploy.entrypoints.openai.tool_parsers import ToolParserManager
|
||||||
|
from fastdeploy.entrypoints.openai.utils import UVICORN_CONFIG
|
||||||
from fastdeploy.metrics.metrics import (
|
from fastdeploy.metrics.metrics import (
|
||||||
EXCLUDE_LABELS,
|
EXCLUDE_LABELS,
|
||||||
cleanup_prometheus_files,
|
cleanup_prometheus_files,
|
||||||
@@ -61,7 +62,6 @@ from fastdeploy.utils import (
|
|||||||
FlexibleArgumentParser,
|
FlexibleArgumentParser,
|
||||||
StatefulSemaphore,
|
StatefulSemaphore,
|
||||||
api_server_logger,
|
api_server_logger,
|
||||||
configure_uvicorn_logging,
|
|
||||||
console_logger,
|
console_logger,
|
||||||
is_port_available,
|
is_port_available,
|
||||||
retrive_model_from_server,
|
retrive_model_from_server,
|
||||||
@@ -416,6 +416,7 @@ def launch_api_server() -> None:
|
|||||||
host=args.host,
|
host=args.host,
|
||||||
port=args.port,
|
port=args.port,
|
||||||
workers=args.workers,
|
workers=args.workers,
|
||||||
|
log_config=UVICORN_CONFIG,
|
||||||
log_level="info",
|
log_level="info",
|
||||||
) # set log level to error to avoid log
|
) # set log level to error to avoid log
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -442,7 +443,7 @@ def run_metrics_server():
|
|||||||
run metrics server
|
run metrics server
|
||||||
"""
|
"""
|
||||||
|
|
||||||
uvicorn.run(metrics_app, host="0.0.0.0", port=args.metrics_port, log_level="error")
|
uvicorn.run(metrics_app, host="0.0.0.0", port=args.metrics_port, log_config=UVICORN_CONFIG, log_level="error")
|
||||||
|
|
||||||
|
|
||||||
def launch_metrics_server():
|
def launch_metrics_server():
|
||||||
@@ -511,6 +512,7 @@ def run_controller_server():
|
|||||||
controller_app,
|
controller_app,
|
||||||
host="0.0.0.0",
|
host="0.0.0.0",
|
||||||
port=args.controller_port,
|
port=args.controller_port,
|
||||||
|
log_config=UVICORN_CONFIG,
|
||||||
log_level="error",
|
log_level="error",
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -530,7 +532,6 @@ def launch_controller_server():
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""main函数"""
|
"""main函数"""
|
||||||
configure_uvicorn_logging()
|
|
||||||
load_model_register_plugins()
|
load_model_register_plugins()
|
||||||
if args.local_data_parallel_id == 0:
|
if args.local_data_parallel_id == 0:
|
||||||
if not load_engine():
|
if not load_engine():
|
||||||
|
@@ -24,6 +24,50 @@ import zmq
|
|||||||
|
|
||||||
from fastdeploy.utils import api_server_logger
|
from fastdeploy.utils import api_server_logger
|
||||||
|
|
||||||
|
UVICORN_CONFIG = {
|
||||||
|
"version": 1,
|
||||||
|
"disable_existing_loggers": False,
|
||||||
|
"formatters": {
|
||||||
|
"custom": {
|
||||||
|
"()": "colorlog.ColoredFormatter",
|
||||||
|
"format": "[%(log_color)s%(asctime)s] [%(levelname)+8s] %(reset)s - %(message)s%(reset)s",
|
||||||
|
"datefmt": "%Y-%m-%d %H:%M:%S", # 时间戳格式
|
||||||
|
"log_colors": {
|
||||||
|
"DEBUG": "cyan",
|
||||||
|
"INFO": "green",
|
||||||
|
"WARNING": "yellow",
|
||||||
|
"ERROR": "red",
|
||||||
|
"CRITICAL": "red,bg_white",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"handlers": {
|
||||||
|
"default": {
|
||||||
|
"class": "colorlog.StreamHandler",
|
||||||
|
"stream": "ext://sys.stderr",
|
||||||
|
"formatter": "custom",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"loggers": {
|
||||||
|
"uvicorn": {
|
||||||
|
"level": "INFO",
|
||||||
|
"handlers": ["default"],
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
"uvicorn.error": {
|
||||||
|
"level": "INFO",
|
||||||
|
"handlers": ["default"],
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
"uvicorn.access": {
|
||||||
|
"level": "INFO",
|
||||||
|
"handlers": ["default"],
|
||||||
|
"propagate": False,
|
||||||
|
"formatter": "custom",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class DealerConnectionManager:
|
class DealerConnectionManager:
|
||||||
"""
|
"""
|
||||||
|
@@ -38,7 +38,6 @@ import yaml
|
|||||||
from aistudio_sdk.snapshot_download import snapshot_download as aistudio_download
|
from aistudio_sdk.snapshot_download import snapshot_download as aistudio_download
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
from typing_extensions import TypeIs, assert_never
|
from typing_extensions import TypeIs, assert_never
|
||||||
from uvicorn.config import LOGGING_CONFIG
|
|
||||||
|
|
||||||
from fastdeploy import envs
|
from fastdeploy import envs
|
||||||
from fastdeploy.logger.logger import FastDeployLogger
|
from fastdeploy.logger.logger import FastDeployLogger
|
||||||
@@ -77,35 +76,6 @@ class ColoredFormatter(logging.Formatter):
|
|||||||
return message
|
return message
|
||||||
|
|
||||||
|
|
||||||
def configure_uvicorn_logging():
|
|
||||||
"""
|
|
||||||
uvicorn logger config
|
|
||||||
"""
|
|
||||||
# add timestamp to log
|
|
||||||
log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
||||||
date_format = "%Y-%m-%d %H:%M:%S"
|
|
||||||
LOGGING_CONFIG["formatters"]["default"]["fmt"] = log_format
|
|
||||||
LOGGING_CONFIG["formatters"]["default"]["datefmt"] = date_format
|
|
||||||
LOGGING_CONFIG["formatters"]["access"]["fmt"] = log_format
|
|
||||||
LOGGING_CONFIG["formatters"]["access"]["datefmt"] = date_format
|
|
||||||
|
|
||||||
uvicorn_error_logger = logging.getLogger("")
|
|
||||||
uvicorn_access_logger = logging.getLogger("uvicorn.access")
|
|
||||||
for handler in uvicorn_error_logger.handlers[:]:
|
|
||||||
uvicorn_error_logger.removeHandler(handler)
|
|
||||||
for handler in uvicorn_access_logger.handlers[:]:
|
|
||||||
uvicorn_access_logger.removeHandler(handler)
|
|
||||||
console_handler = logging.StreamHandler(sys.stdout)
|
|
||||||
console_handler.setFormatter(logging.Formatter(log_format, date_format))
|
|
||||||
|
|
||||||
uvicorn_error_logger.addHandler(console_handler)
|
|
||||||
uvicorn_access_logger.addHandler(console_handler)
|
|
||||||
uvicorn_error_logger.setLevel(logging.INFO)
|
|
||||||
uvicorn_access_logger.setLevel(logging.INFO)
|
|
||||||
uvicorn_error_logger.propagate = False
|
|
||||||
uvicorn_access_logger.propagate = False
|
|
||||||
|
|
||||||
|
|
||||||
class DailyRotatingFileHandler(BaseRotatingHandler):
|
class DailyRotatingFileHandler(BaseRotatingHandler):
|
||||||
"""
|
"""
|
||||||
like `logging.TimedRotatingFileHandler`, but this class support multi-process
|
like `logging.TimedRotatingFileHandler`, but this class support multi-process
|
||||||
|
Reference in New Issue
Block a user