zhzluke96
update
32b2aaa
import logging
from pathlib import Path
from rich.logging import RichHandler
from .distributed import global_leader_only
@global_leader_only
def setup_logging(run_dir):
handlers = []
stdout_handler = RichHandler()
stdout_handler.setLevel(logging.INFO)
handlers.append(stdout_handler)
if run_dir is not None:
filename = Path(run_dir) / f"log.txt"
filename.parent.mkdir(parents=True, exist_ok=True)
file_handler = logging.FileHandler(filename, mode="a")
file_handler.setLevel(logging.DEBUG)
handlers.append(file_handler)
# Update all existing loggers
for name in ["DeepSpeed"]:
logger = logging.getLogger(name)
if isinstance(logger, logging.Logger):
for handler in list(logger.handlers):
logger.removeHandler(handler)
for handler in handlers:
logger.addHandler(handler)
# Set the default logger
logging.basicConfig(
level=logging.getLevelName("INFO"),
format="%(message)s",
datefmt="[%X]",
handlers=handlers,
)