MCPcopy Create free account
hub / github.com/TheSmallHanCat/flow2api / DebugLogger

Class DebugLogger

src/core/logger.py:9–279  ·  view source on GitHub ↗

Debug logger for API requests and responses

Source from the content-addressed store, hash-verified

7from .config import config
8
9class DebugLogger:
10 """Debug logger for API requests and responses"""
11
12 def __init__(self):
13 self.log_file = Path("logs.txt")
14 self._setup_logger()
15
16 def _setup_logger(self):
17 """Setup file logger"""
18 # Create logger
19 self.logger = logging.getLogger("debug_logger")
20 self.logger.setLevel(logging.DEBUG)
21
22 # Remove existing handlers
23 self.logger.handlers.clear()
24
25 # Create file handler
26 file_handler = logging.FileHandler(
27 self.log_file,
28 mode='a',
29 encoding='utf-8'
30 )
31 file_handler.setLevel(logging.DEBUG)
32
33 # Create formatter
34 formatter = logging.Formatter(
35 '%(message)s',
36 datefmt='%Y-%m-%d %H:%M:%S'
37 )
38 file_handler.setFormatter(formatter)
39
40 # Add handler
41 self.logger.addHandler(file_handler)
42
43 # Prevent propagation to root logger
44 self.logger.propagate = False
45
46 def _mask_token(self, token: str) -> str:
47 """Mask token for logging (show first 6 and last 6 characters)"""
48 if not config.debug_mask_token or len(token) <= 12:
49 return token
50 return f"{token[:6]}...{token[-6:]}"
51
52 def _format_timestamp(self) -> str:
53 """Format current timestamp"""
54 return datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
55
56 def _write_separator(self, char: str = "=", length: int = 100):
57 """Write separator line"""
58 self.logger.info(char * length)
59
60 def _truncate_large_fields(self, data: Any, max_length: int = 200) -> Any:
61 """对大字段进行截断处理,特别是 base64 编码的图片数据
62
63 Args:
64 data: 要处理的数据
65 max_length: 字符串字段的最大长度
66

Callers 1

logger.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected