Skip to main content
Glama
utils_logging.py1.23 kB
from enum import Enum import traceback from typing import Optional, Union class LogLevel(Enum): DEBUG = 0 INFO = 1 WARNING = 2 ERROR = 3 @classmethod def from_string(cls, level_str: str) -> "LogLevel": level_map = { "DEBUG": cls.DEBUG, "INFO": cls.INFO, "WARNING": cls.WARNING, "ERROR": cls.ERROR, } return level_map.get(level_str.upper(), cls.INFO) class Logger: def __init__(self, min_level: LogLevel = LogLevel.INFO): self.min_level = min_level def log( self, message: str, level: Union[LogLevel, str] = LogLevel.INFO, exception: Optional[Exception] = None, ): if isinstance(level, str): level = LogLevel.from_string(level) if level.value < self.min_level.value: return prefix = f"[{level.name}]" print(f"{prefix} {message}") if exception and level.value >= LogLevel.ERROR.value: print(traceback.format_exc()) def debug(self, message: str): self.log(message, LogLevel.DEBUG) def info(self, message: str): self.log(message, LogLevel.INFO) def warning(self, message: str): self.log(message, LogLevel.WARNING) def error(self, message: str, exception: Optional[Exception] = None): self.log(message, LogLevel.ERROR, exception) logger = Logger()

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/8beeeaaat/touchdesigner-mcp'

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