async and await for logging in fastmcp

This commit is contained in:
Thomas Sheffler
2025-01-25 07:03:20 -08:00
parent 57c3aa2f0d
commit 7a64d8f9af

View File

@@ -620,7 +620,7 @@ class Context(BaseModel):
), "Context is not available outside of a request" ), "Context is not available outside of a request"
return await self._fastmcp.read_resource(uri) return await self._fastmcp.read_resource(uri)
def log( async def log(
self, self,
level: Literal["debug", "info", "warning", "error"], level: Literal["debug", "info", "warning", "error"],
message: str, message: str,
@@ -635,7 +635,7 @@ class Context(BaseModel):
logger_name: Optional logger name logger_name: Optional logger name
**extra: Additional structured data to include **extra: Additional structured data to include
""" """
self.request_context.session.send_log_message( await self.request_context.session.send_log_message(
level=level, data=message, logger=logger_name level=level, data=message, logger=logger_name
) )
@@ -659,18 +659,18 @@ class Context(BaseModel):
return self.request_context.session return self.request_context.session
# Convenience methods for common log levels # Convenience methods for common log levels
def debug(self, message: str, **extra: Any) -> None: async def debug(self, message: str, **extra: Any) -> None:
"""Send a debug log message.""" """Send a debug log message."""
self.log("debug", message, **extra) await self.log("debug", message, **extra)
def info(self, message: str, **extra: Any) -> None: async def info(self, message: str, **extra: Any) -> None:
"""Send an info log message.""" """Send an info log message."""
self.log("info", message, **extra) await self.log("info", message, **extra)
def warning(self, message: str, **extra: Any) -> None: async def warning(self, message: str, **extra: Any) -> None:
"""Send a warning log message.""" """Send a warning log message."""
self.log("warning", message, **extra) await self.log("warning", message, **extra)
def error(self, message: str, **extra: Any) -> None: async def error(self, message: str, **extra: Any) -> None:
"""Send an error log message.""" """Send an error log message."""
self.log("error", message, **extra) await self.log("error", message, **extra)