carla-env / server /logging.py
sergiopaniego's picture
sergiopaniego HF Staff
Upload folder using huggingface_hub
8c96d45 verified
# 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)