fix: Include extra field for context log (#1535)
This commit is contained in:
parent
2aa1ad2a69
commit
06748eb4c4
1 changed files with 61 additions and 12 deletions
|
|
@ -1260,6 +1260,7 @@ class Context(BaseModel, Generic[ServerSessionT, LifespanContextT, RequestT]):
|
|||
message: str,
|
||||
*,
|
||||
logger_name: str | None = None,
|
||||
extra: dict[str, Any] | None = None,
|
||||
) -> None:
|
||||
"""Send a log message to the client.
|
||||
|
||||
|
|
@ -1267,11 +1268,20 @@ class Context(BaseModel, Generic[ServerSessionT, LifespanContextT, RequestT]):
|
|||
level: Log level (debug, info, warning, error)
|
||||
message: Log message
|
||||
logger_name: Optional logger name
|
||||
**extra: Additional structured data to include
|
||||
extra: Optional dictionary with additional structured data to include
|
||||
"""
|
||||
|
||||
if extra:
|
||||
log_data = {
|
||||
"message": message,
|
||||
**extra,
|
||||
}
|
||||
else:
|
||||
log_data = message
|
||||
|
||||
await self.request_context.session.send_log_message(
|
||||
level=level,
|
||||
data=message,
|
||||
data=log_data,
|
||||
logger=logger_name,
|
||||
related_request_id=self.request_id,
|
||||
)
|
||||
|
|
@ -1326,18 +1336,20 @@ class Context(BaseModel, Generic[ServerSessionT, LifespanContextT, RequestT]):
|
|||
await self._request_context.close_standalone_sse_stream()
|
||||
|
||||
# Convenience methods for common log levels
|
||||
async def debug(self, message: str, **extra: Any) -> None:
|
||||
async def debug(self, message: str, *, logger_name: str | None = None, extra: dict[str, Any] | None = None) -> None:
|
||||
"""Send a debug log message."""
|
||||
await self.log("debug", message, **extra)
|
||||
await self.log("debug", message, logger_name=logger_name, extra=extra)
|
||||
|
||||
async def info(self, message: str, **extra: Any) -> None:
|
||||
async def info(self, message: str, *, logger_name: str | None = None, extra: dict[str, Any] | None = None) -> None:
|
||||
"""Send an info log message."""
|
||||
await self.log("info", message, **extra)
|
||||
await self.log("info", message, logger_name=logger_name, extra=extra)
|
||||
|
||||
async def warning(self, message: str, **extra: Any) -> None:
|
||||
async def warning(
|
||||
self, message: str, *, logger_name: str | None = None, extra: dict[str, Any] | None = None
|
||||
) -> None:
|
||||
"""Send a warning log message."""
|
||||
await self.log("warning", message, **extra)
|
||||
await self.log("warning", message, logger_name=logger_name, extra=extra)
|
||||
|
||||
async def error(self, message: str, **extra: Any) -> None:
|
||||
async def error(self, message: str, *, logger_name: str | None = None, extra: dict[str, Any] | None = None) -> None:
|
||||
"""Send an error log message."""
|
||||
await self.log("error", message, **extra)
|
||||
await self.log("error", message, logger_name=logger_name, extra=extra)
|
||||
|
|
|
|||
Loading…
Reference in a new issue