mirror of
https://github.com/unclecode/crawl4ai.git
synced 2026-06-11 00:08:01 +00:00
MCP stdio transport uses stdout for JSON-RPC messages. AsyncLogger was writing Rich progress output to stdout (the default Console() target), which caused clients to receive garbled JSON and log lines interleaved in the same stream. Changes: - Pass stderr=True to Console() so all log output goes to stderr, which is the correct channel for library diagnostics and aligns with the behaviour of Python's own logging.StreamHandler. - Add an injectable console parameter so downstream wrappers (e.g. mcp-crawl4ai, FastMCP integrations) can override the target stream without monkey-patching. - Add import sys (used in docstring example). - Add tests/test_async_logger_stderr.py with 7 tests covering the default-to-stderr behaviour, custom console injection, verbose=False suppression, file logging, and an end-to-end MCP scenario. Fixes #1968
5.6 KiB
5.6 KiB