playwright_console_logs
Retrieve and filter browser console logs with options to specify log type, search text, and limit count. Clear logs post-retrieval for efficient debugging and monitoring.
Instructions
Retrieve console logs from the browser with filtering options
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | Whether to clear logs after retrieval (default: false) | |
| limit | No | Maximum number of logs to return | |
| search | No | Text to search for in logs (handles text with square brackets) | |
| type | No | Type of logs to retrieve (all, error, warning, log, info, debug, exception) |
Implementation Reference
- src/tools/browser/console.ts:23-58 (handler)The main execution logic for the 'playwright_console_logs' tool. Filters stored console logs by type, search term, and limit, optionally clears them, and returns formatted results.async execute(args: any, context: ToolContext): Promise<ToolResponse> { // No need to use safeExecute here as we don't need to interact with the page // We're just filtering and returning logs that are already stored let logs = [...this.consoleLogs]; // Filter by type if specified if (args.type && args.type !== 'all') { logs = logs.filter(log => log.startsWith(`[${args.type}]`)); } // Filter by search text if specified if (args.search) { logs = logs.filter(log => log.includes(args.search)); } // Limit the number of logs if specified if (args.limit && args.limit > 0) { logs = logs.slice(-args.limit); } // Clear logs if requested if (args.clear) { this.consoleLogs = []; } // Format the response if (logs.length === 0) { return createSuccessResponse("No console logs matching the criteria"); } else { return createSuccessResponse([ `Retrieved ${logs.length} console log(s):`, ...logs ]); } }
- src/tools.ts:207-233 (schema)Input schema and description for the 'playwright_console_logs' tool, defining parameters for filtering console logs.{ name: "playwright_console_logs", description: "Retrieve console logs from the browser with filtering options", inputSchema: { type: "object", properties: { type: { type: "string", description: "Type of logs to retrieve (all, error, warning, log, info, debug, exception)", enum: ["all", "error", "warning", "log", "info", "debug", "exception"] }, search: { type: "string", description: "Text to search for in logs (handles text with square brackets)" }, limit: { type: "number", description: "Maximum number of logs to return" }, clear: { type: "boolean", description: "Whether to clear logs after retrieval (default: false)" } }, required: [], }, },
- src/toolHandler.ts:481-482 (registration)Registration in the main tool dispatch switch statement, routing calls to the ConsoleLogsTool instance.case "playwright_console_logs": return await consoleLogsTool.execute(args, context);
- src/toolHandler.ts:320-320 (registration)Instantiation of the ConsoleLogsTool class instance used for handling tool calls.if (!consoleLogsTool) consoleLogsTool = new ConsoleLogsTool(server);
- src/tools/browser/console.ts:15-18 (helper)Helper method to register individual console messages into the tool's internal log storage.registerConsoleMessage(type: string, text: string): void { const logEntry = `[${type}] ${text}`; this.consoleLogs.push(logEntry); }