PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 3.4.3
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v3.4.3
3.4.3 3.4.2 3.4.1 3.4.0 3.3.9 3.3.8 3.3.7 3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 All 196 releases
convertkit / vendor / wordpress / mcp-adapter / includes / Infrastructure / Observability / ConsoleObservabilityHandler.php

ConsoleObservabilityHandler.php in Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages 3.4.3, at vendor/wordpress/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