feat: add distributed rank to logs

This commit is contained in:
2026-08-20 01:37:00 +08:00
parent c79d34eee1
commit 53a7149577
+9 -1
View File
@@ -2,6 +2,13 @@ import logging
import os import os
class _DistributedContextFilter(logging.Filter):
def filter(self, record: logging.LogRecord) -> bool:
record.rank = os.environ.get("RANK", "0")
record.world_size = os.environ.get("WORLD_SIZE", "1")
return True
def setup_logging(level: str = "INFO"): def setup_logging(level: str = "INFO"):
"""Attach a StreamHandler to the ``astrai`` logger (idempotent). """Attach a StreamHandler to the ``astrai`` logger (idempotent).
@@ -18,9 +25,10 @@ def setup_logging(level: str = "INFO"):
level_name = os.environ.get("ASTR_LOG_LEVEL", level).upper() level_name = os.environ.get("ASTR_LOG_LEVEL", level).upper()
logger.setLevel(getattr(logging, level_name, logging.INFO)) logger.setLevel(getattr(logging, level_name, logging.INFO))
handler = logging.StreamHandler() handler = logging.StreamHandler()
handler.addFilter(_DistributedContextFilter())
handler.setFormatter( handler.setFormatter(
logging.Formatter( logging.Formatter(
"%(asctime)s | %(levelname)-7s | %(name)s | %(message)s", "%(asctime)s | %(levelname)-8s | rank=%(rank)2s/%(world_size)-2s | %(name)-32s | %(message)s",
datefmt="%Y-%m-%d %H:%M:%S", datefmt="%Y-%m-%d %H:%M:%S",
) )
) )