PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / wordpress / mcp-adapter / includes / Infrastructure / Observability / ConsoleObservabilityHandler.php
ameliabooking / vendor / wordpress / mcp-adapter / includes / Infrastructure / Observability Last commit date
Contracts 1 month ago ConsoleObservabilityHandler.php 1 month ago ErrorLogMcpObservabilityHandler.php 1 month ago FailureReason.php 1 month ago McpObservabilityHelperTrait.php 1 month ago NullMcpObservabilityHandler.php 1 month ago
ConsoleObservabilityHandler.php
57 lines
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