Log::failure('media usage query', 'Table gone')); self::assertStringContainsString('[wp-lit-mcp] media usage query failed: Table gone', $content); } public function testFailureLogsAThrowableWithItsTrace(): void { $e = new RuntimeException('kaputt'); $content = self::captured(static fn () => Log::failure('lit/x', $e)); self::assertStringContainsString('[wp-lit-mcp] lit/x failed: RuntimeException: kaputt', $content); self::assertStringContainsString('Stack trace', $content); } public function testLineOnlyAddsThePrefix(): void { $content = self::captured(static fn () => Log::line('change log insert failed for a b:1')); self::assertStringContainsString('[wp-lit-mcp] change log insert failed for a b:1', $content); } }