初步实现多project pipeline

This commit is contained in:
strepsiades
2026-04-07 14:45:19 +08:00
parent e3eab5ade1
commit 966f2e1270
11 changed files with 1083 additions and 169 deletions
+12
View File
@@ -8,6 +8,14 @@ from typing import Optional
APP_LOGGER_NAME = "sync_state_machine"
class ScopeLoggerAdapter(logging.LoggerAdapter):
def process(self, msg, kwargs):
scope = self.extra.get("scope")
if scope and not str(msg).startswith("["):
msg = f"[{scope}] {msg}"
return msg, kwargs
class _NodeLogFilter(logging.Filter):
def filter(self, record: logging.LogRecord) -> bool:
message = record.getMessage()
@@ -30,6 +38,10 @@ def get_logger(name: Optional[str] = None) -> logging.Logger:
return logging.getLogger(f"{APP_LOGGER_NAME}.{name}")
def get_scope_logger(scope: str, name: Optional[str] = None) -> logging.LoggerAdapter:
return ScopeLoggerAdapter(get_logger(name), {"scope": scope})
def clear_app_logger_handlers(logger: Optional[logging.Logger] = None) -> None:
target = logger or get_app_logger()
handlers = list(target.handlers)