File tree Expand file tree Collapse file tree 3 files changed +208
-13
lines changed
kai_mcp_solution_server/src/kai_mcp_solution_server Expand file tree Collapse file tree 3 files changed +208
-13
lines changed Original file line number Diff line number Diff line change 1- # TODO: More robust logging
1+ import logging
22import sys
3+ from datetime import datetime
34from typing import Any
45
6+ # Configure logging with more detail
7+ logging .basicConfig (
8+ level = logging .INFO ,
9+ format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ,
10+ handlers = [
11+ logging .FileHandler ("kai_mcp_server.log" ),
12+ logging .StreamHandler (sys .stderr ),
13+ ],
14+ )
15+
16+ logger = logging .getLogger ("kai_mcp_solution_server" )
17+
18+ # Keep the original log function for compatibility but enhance it
519log_file = open ("stderr.log" , "a+" )
620log_file .close ()
721
822
923def log (* args : Any , ** kwargs : Any ) -> None :
10- print (* args , file = log_file if not log_file .closed else sys .stderr , ** kwargs )
24+ """Legacy log function - enhanced with timestamp and logging level"""
25+ timestamp = datetime .now ().isoformat ()
26+ message = " " .join (str (arg ) for arg in args )
27+ logger .info (message )
28+ print (
29+ f"[{ timestamp } ] { message } " ,
30+ file = log_file if not log_file .closed else sys .stderr ,
31+ ** kwargs ,
32+ )
Original file line number Diff line number Diff line change 11from __future__ import annotations
22
3+ import logging
34import sys
45from datetime import datetime
56from typing import Any
67
8+ logger = logging .getLogger ("kai_mcp_solution_server.db" )
9+
710from sqlalchemy import (
811 ARRAY ,
912 JSON ,
@@ -308,12 +311,21 @@ class DBSolution(Base):
308311 )
309312
310313 def update_solution_status (self ) -> None :
314+ previous_status = self .solution_status
311315 for file in self .after :
312316 if file .status != SolutionStatus .ACCEPTED :
313317 self .solution_status = file .status
318+ if previous_status != self .solution_status :
319+ logger .info (
320+ f"[DB_STATE_CHANGE] Solution { self .id } status auto-updated: { previous_status } -> { self .solution_status } (due to file { file .uri } with status { file .status } )"
321+ )
314322 return
315323
316324 self .solution_status = SolutionStatus .ACCEPTED
325+ if previous_status != self .solution_status :
326+ logger .info (
327+ f"[DB_STATE_CHANGE] Solution { self .id } status auto-updated: { previous_status } -> ACCEPTED (all files accepted)"
328+ )
317329
318330 def __hash__ (self ) -> int :
319331 return hash (self .id )
You can’t perform that action at this time.
0 commit comments