|
|
|
|
|
|
|
|
"""
|
|
|
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 |
|
|
|