PluginProbe
ZIP AI – AI Website Builder & AI Agent (Beta) / 0.0.8
ZIP AI – AI Website Builder & AI Agent (Beta) v0.0.8
0.0.10 0.0.9 trunk 0.0.4 0.0.5 0.0.6 0.0.7 0.0.8
zip-ai / lib / mcp-adapter / includes / Infrastructure / Observability / ConsoleObservabilityHandler.php

ConsoleObservabilityHandler.php in ZIP AI – AI Website Builder & AI Agent (Beta) 0.0.8, at lib/mcp-adapter/includes/Infrastructure/Observability/ConsoleObservabilityHandler.php

57 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Console Observability Handler for testing and debugging.
4 *
5 * Outputs formatted observability events to stdout for easy testing.
6 *
7 * @package McpAdapter
8 */
9
10 declare( strict_types=1 );
11
12 namespace WP\MCP\Infrastructure\Observability;
13
14 use WP\MCP\Infrastructure\Observability\Contracts\McpObservabilityHandlerInterface;
15
16 /**
17 * Console-based observability handler for testing.
18 *
19 * Outputs nicely formatted events to stdout/error_log with JSON formatting.
20 */
21 class ConsoleObservabilityHandler implements McpObservabilityHandlerInterface {
22
23 use McpObservabilityHelperTrait;
24
25 /**
26 * Record an event with formatted output.
27 *
28 * @param string $event The event name.
29 * @param array $tags Tags to attach.
30 * @param float|null $duration_ms Duration in milliseconds.
31 *
32 * @return void
33 */
34 public function record_event( string $event, array $tags = array(), ?float $duration_ms = null ): void {
35 $formatted_event = self::format_metric_name( $event );
36 $merged_tags = self::merge_tags( $tags );
37
38 // Create a structured output
39 $output = array(
40 'event' => $formatted_event,
41 'duration_ms' => $duration_ms,
42 'tags' => $merged_tags,
43 'timestamp' => gmdate( 'Y-m-d H:i:s' ),
44 );
45
46 // Pretty print JSON for readability
47 $json = wp_json_encode( $output, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES );
48
49 // Output with visual separator
50 $separator = str_repeat( '=', 80 );
51 $message = "\n{$separator}\n[MCP OBSERVABILITY EVENT]\n{$separator}\n{$json}\n{$separator}\n";
52
53 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
54 error_log( $message );
55 }
56 }
57