Skip to main content
Glama
PrefixedLogger.py1.53 kB
# Copyright © 2025 Dr.-Ing. Paul Wilhelm <paul@wilhelm.dev> # This file is part of Archive Agent. See LICENSE for details. from logging import Logger from typing import Any class PrefixedLogger(Logger): """ A logger that prepends a prefix to all log messages while delegating everything to the parent logger. """ def __init__(self, prefix: str, parent_logger: Logger): """ Initialize the prefixed logger. :param prefix: Prefix to prepend to all messages. :param parent_logger: Parent logger to delegate to. """ # Initialize with parent's name and level, but don't add handlers super().__init__(parent_logger.name, parent_logger.level) self.prefix = prefix self.parent_logger = parent_logger # Clear any handlers that might have been added during initialization self.handlers = [] self.propagate = False def _log(self, level: int, msg: Any, args, exc_info=None, extra=None, stack_info=False, stacklevel=1): """ Override _log to prepend prefix and delegate to parent logger. """ prefixed_msg = f"[{self.prefix}] {msg}" # Call parent logger's _log method directly self.parent_logger._log(level, prefixed_msg, args, exc_info=exc_info, extra=extra, stack_info=stack_info, stacklevel=stacklevel) def __getattr__(self, name): """ Delegate any other attributes to the parent logger. """ return getattr(self.parent_logger, name)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shredEngineer/Archive-Agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server