Log a message to the session timeline. The message appears in the session event stream and is visible to SDK consumers and (for non-ephemeral messages) persisted to the session event log on disk. Args: message: The human-readable message to log.
(
self,
message: str,
*,
level: str | None = None,
ephemeral: bool | None = None,
)
| 2887 | ) |
| 2888 | |
| 2889 | async def log( |
| 2890 | self, |
| 2891 | message: str, |
| 2892 | *, |
| 2893 | level: str | None = None, |
| 2894 | ephemeral: bool | None = None, |
| 2895 | ) -> None: |
| 2896 | """ |
| 2897 | Log a message to the session timeline. |
| 2898 | |
| 2899 | The message appears in the session event stream and is visible to SDK consumers |
| 2900 | and (for non-ephemeral messages) persisted to the session event log on disk. |
| 2901 | |
| 2902 | Args: |
| 2903 | message: The human-readable message to log. |
| 2904 | level: Log severity level ("info", "warning", "error"). Defaults to "info". |
| 2905 | ephemeral: When True, the message is transient and not persisted to disk. |
| 2906 | |
| 2907 | Raises: |
| 2908 | Exception: If the session has been destroyed or the connection fails. |
| 2909 | |
| 2910 | Example: |
| 2911 | >>> await session.log("Processing started") |
| 2912 | >>> await session.log("Something looks off", level="warning") |
| 2913 | >>> await session.log("Operation failed", level="error") |
| 2914 | >>> await session.log("Temporary status update", ephemeral=True) |
| 2915 | """ |
| 2916 | params = LogRequest( |
| 2917 | message=message, |
| 2918 | level=SessionLogLevel(level) if level is not None else None, |
| 2919 | ephemeral=ephemeral, |
| 2920 | ) |
| 2921 | await self.rpc.log(params) |