Spaces:
Running on T4
Running on T4
| # Copyright (c) Meta Platforms, Inc. and affiliates. | |
| # All rights reserved. | |
| # | |
| # This source code is licensed under the BSD-style license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| """ | |
| Simple logging utilities for CARLA environment. | |
| Adapted from SinatrasC/carla-env logging module. | |
| """ | |
| from __future__ import annotations | |
| import logging | |
| import os | |
| _LOGGER_BASE = "openenv.carla_env" | |
| # Package-level parent logger. Defaults to WARNING; override via env vars | |
| # or configure_logging(). | |
| _pkg_logger = logging.getLogger(_LOGGER_BASE) | |
| if _pkg_logger.level == logging.NOTSET: | |
| _pkg_logger.setLevel(logging.WARNING) | |
| def _normalize_level(level: str | int) -> str | int: | |
| """Accept common level formats (e.g. ``"debug"``, ``"10"``).""" | |
| if isinstance(level, str): | |
| s = level.strip() | |
| if s.isdigit(): | |
| return int(s) | |
| return s.upper() | |
| return level | |
| def configure_logging(log_level: str | int | None = None) -> None: | |
| """ | |
| Set the package parent logger level. | |
| Precedence: ``CARLA_ENV_LOG_LEVEL`` > *log_level* argument. | |
| """ | |
| env_level = os.getenv("CARLA_ENV_LOG_LEVEL") | |
| if env_level: | |
| try: | |
| _pkg_logger.setLevel(_normalize_level(env_level)) | |
| return | |
| except Exception: | |
| pass | |
| if log_level is not None: | |
| _pkg_logger.setLevel(_normalize_level(log_level)) | |
| def get_logger(name: str) -> logging.Logger: | |
| """Return a logger namespaced under ``openenv.carla_env``.""" | |
| return logging.getLogger(f"{_LOGGER_BASE}.{name}") | |
| # Apply env-var overrides at import time. | |
| configure_logging(None) | |