#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Local logging for protobuf2openai package to avoid cross-package dependencies. """ import logging import os from logging.handlers import RotatingFileHandler from pathlib import Path _default_log_dir = os.getenv("LOG_DIR") or os.path.join(os.getenv("DATA_DIR", "/data"), "logs") LOG_DIR = Path(_default_log_dir) try: LOG_DIR.mkdir(parents=True, exist_ok=True) except Exception as e: fallback = Path("/tmp/protobuf2openai_logs") try: fallback.mkdir(parents=True, exist_ok=True) LOG_DIR = fallback except Exception: LOG_DIR = None _logger = logging.getLogger("protobuf2openai") _logger.setLevel(logging.INFO) for h in _logger.handlers[:]: _logger.removeHandler(h) console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) fmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(funcName)s:%(lineno)d - %(message)s') console_handler.setFormatter(fmt) _logger.addHandler(console_handler) if LOG_DIR is not None: try: file_handler = RotatingFileHandler(LOG_DIR / "openai_compat.log", maxBytes=5*1024*1024, backupCount=3, encoding="utf-8") file_handler.setLevel(logging.INFO) file_handler.setFormatter(fmt) _logger.addHandler(file_handler) except Exception as e: _logger.warning(f"Unable to create file logger under {LOG_DIR}: {e}") logger = _logger