get-logs
Retrieve Cloud Logging entries for your GCP project using customizable filters and pagination. Simplify log analysis by fetching specific logs with a structured query.
Instructions
Get Cloud Logging entries for the current project
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter for the log entries (see Cloud Logging query syntax) | |
| pageSize | No | Maximum number of entries to return (default: 10) |
Implementation Reference
- index.ts:619-649 (handler)Handler function for the 'get-logs' tool. Parses input arguments, checks for selected project, initializes Google Cloud Logging client, retrieves log entries with optional filter and page size, formats them into JSON, and returns the response. Handles errors gracefully.} else if (name === "get-logs") { const { filter, pageSize = 10 } = GetLogsSchema.parse(args); if (!selectedProject) { return createTextResponse("No project selected. Please select a project first."); } try { const logging = new Logging({ projectId: selectedProject }); const [entries] = await logging.getEntries({ pageSize, filter: filter || undefined, orderBy: 'timestamp desc' }); return createTextResponse(JSON.stringify({ entries: entries.map((entry: Entry) => ({ timestamp: entry.metadata.timestamp, severity: entry.metadata.severity, resource: entry.metadata.resource, textPayload: entry.data, jsonPayload: typeof entry.data === 'object' ? entry.data : null })) }, null, 2)); } catch (error: any) { console.error('Error getting logs:', error); return createTextResponse(`Error getting logs: ${error.message}`); } } else {
- index.ts:245-248 (schema)Zod schema for validating 'get-logs' tool input parameters: optional filter string and pageSize number.const GetLogsSchema = z.object({ filter: z.string().optional(), pageSize: z.number().optional(), });
- index.ts:194-211 (registration)Tool registration in the listTools response, including name, description, and input schema definition matching the handler.{ name: "get-logs", description: "Get Cloud Logging entries for the current project", inputSchema: { type: "object", properties: { filter: { type: "string", description: "Filter for the log entries (see Cloud Logging query syntax)", }, pageSize: { type: "number", description: "Maximum number of entries to return (default: 10)", } }, required: [], }, }