MCPcopy Create free account
hub / github.com/CJackHwang/AIstudioProxyAPI / setup_server_logging

Function setup_server_logging

logging_utils/setup.py:76–207  ·  view source on GitHub ↗

Setup server logging system Args: logger_instance: Main logger instance log_ws_manager: WebSocket connection manager log_level_name: Log level name redirect_print_str: Whether to redirect print output Returns: Tuple[object, object]: Original std

(
    logger_instance: logging.Logger,
    log_ws_manager: Optional[WebSocketConnectionManager],
    log_level_name: str = "INFO",
    redirect_print_str: str = "false",
)

Source from the content-addressed store, hash-verified

74
75
76def setup_server_logging(
77 logger_instance: logging.Logger,
78 log_ws_manager: Optional[WebSocketConnectionManager],
79 log_level_name: str = "INFO",
80 redirect_print_str: str = "false",
81) -> Tuple[object, object]:
82 """
83 Setup server logging system
84
85 Args:
86 logger_instance: Main logger instance
87 log_ws_manager: WebSocket connection manager
88 log_level_name: Log level name
89 redirect_print_str: Whether to redirect print output
90
91 Returns:
92 Tuple[object, object]: Original stdout and stderr streams
93 """
94 log_level = getattr(logging, log_level_name.upper(), logging.INFO)
95 redirect_print = redirect_print_str.lower() in ("true", "1", "yes")
96
97 # Create necessary directories
98 os.makedirs(LOG_DIR, exist_ok=True)
99 os.makedirs(ACTIVE_AUTH_DIR, exist_ok=True)
100 os.makedirs(SAVED_AUTH_DIR, exist_ok=True)
101
102 # Clear existing handlers
103 if logger_instance.hasHandlers():
104 logger_instance.handlers.clear()
105 logger_instance.setLevel(log_level)
106 logger_instance.propagate = False
107
108 # Remove old log file
109 if os.path.exists(APP_LOG_FILE_PATH):
110 try:
111 os.remove(APP_LOG_FILE_PATH)
112 except OSError as e:
113 print(
114 f"Warning (setup_server_logging): Failed to remove old app.log file '{APP_LOG_FILE_PATH}': {e}. Will rely on mode='w' for truncation.",
115 file=sys.__stderr__,
116 )
117
118 # Use JSONFormatter for file logging if JSON_LOGS_ENABLED, otherwise PlainGridFormatter
119 if JSON_LOGS_ENABLED:
120 file_log_formatter = JSONFormatter()
121 else:
122 file_log_formatter = PlainGridFormatter()
123
124 file_handler = logging.handlers.RotatingFileHandler(
125 APP_LOG_FILE_PATH,
126 maxBytes=LOG_FILE_MAX_BYTES,
127 backupCount=LOG_FILE_BACKUP_COUNT,
128 encoding="utf-8",
129 mode="w",
130 )
131 file_handler.setFormatter(file_log_formatter)
132 file_handler.setLevel(log_level)
133 logger_instance.addHandler(file_handler)

Calls 9

WebSocketLogHandlerClass · 0.90
StreamToLoggerClass · 0.90
JSONFormatterClass · 0.85
PlainGridFormatterClass · 0.85
GridFormatterClass · 0.85
infoMethod · 0.80
debugMethod · 0.80
clearMethod · 0.45