diff --git a/src/backend/main.py b/src/backend/main.py index d71b0672..09702f13 100644 --- a/src/backend/main.py +++ b/src/backend/main.py @@ -14,7 +14,7 @@ from backend.server.server_args import parse_args from backend.server.static_config import get_model_list, get_node_join_command from parallax_utils.ascii_anime import display_parallax_run -from parallax_utils.logging_config import get_logger +from parallax_utils.logging_config import get_logger, set_log_level app = FastAPI() @@ -126,6 +126,7 @@ async def serve_index(): if __name__ == "__main__": args = parse_args() + set_log_level(args.log_level) logger.info(f"args: {args}") if args.log_level != "DEBUG": display_parallax_run() diff --git a/src/parallax/launch.py b/src/parallax/launch.py index 98b20ad3..72eded2f 100644 --- a/src/parallax/launch.py +++ b/src/parallax/launch.py @@ -24,7 +24,7 @@ from parallax.server.server_args import parse_args from parallax.utils.utils import get_current_device from parallax_utils.ascii_anime import display_parallax_join -from parallax_utils.logging_config import get_logger +from parallax_utils.logging_config import get_logger, set_log_level logger = get_logger("parallax.launch") @@ -48,6 +48,7 @@ executor = None try: args = parse_args() + set_log_level(args.log_level) logger.debug(f"args: {args}") args.recv_from_peer_addr = f"ipc://{tempfile.NamedTemporaryFile().name}" args.send_to_peer_addr = f"ipc://{tempfile.NamedTemporaryFile().name}" diff --git a/src/parallax_utils/logging_config.py b/src/parallax_utils/logging_config.py index 6dba33bb..f4b49c0e 100644 --- a/src/parallax_utils/logging_config.py +++ b/src/parallax_utils/logging_config.py @@ -1,12 +1,11 @@ """Logging configuration for Parallax.""" import logging -import os import sys import threading from typing import Optional -__all__ = ["get_logger", "use_parallax_log_handler"] +__all__ = ["get_logger", "use_parallax_log_handler", "set_log_level"] _init_lock = threading.Lock() _default_handler: logging.Handler | None = None @@ -90,13 +89,18 @@ def _initialize_if_necessary(): _default_handler.setFormatter(formatter) # root level from env or INFO - level_name = os.getenv("PARALLAX_LOGLEVEL", "INFO").upper() - logging.getLogger().setLevel(level_name) + logging.getLogger().setLevel("INFO") # Allow logs from our main packages by default _enable_default_handler(("parallax", "scheduling", "backend", "sglang")) +def set_log_level(level_name: str): + """Set the root logger level.""" + _initialize_if_necessary() + logging.getLogger().setLevel(level_name.upper()) + + def get_logger(name: Optional[str] = None) -> logging.Logger: """ Grab a logger with parallax’s default handler attached.