我们在用Crawl4AI 0.6.3 抓取数据时,会输出 抓取的log日志。我们需要把,无用的log 屏蔽掉,
避免 java哪里获取到无用的信息。

AsyncWebCrawler 支持在初始化时传入自定义的 AsyncLoggerBase 实例。以下是具体实现步骤:


步骤 1:创建自定义 Logger 并设置日志级别

在初始化 AsyncWebCrawler 前,创建一个 AsyncLogger 实例,并将日志级别设为 ERROR

from crawl4ai import AsyncWebCrawler
from crawl4ai.async_logger import AsyncLogger, LogLevel

# 创建自定义 Logger,设置日志级别为 ERROR
custom_logger = AsyncLogger(
    log_level=LogLevel.ERROR,  # 关键参数
    log_file="crawl.log",      # 可选:日志文件路径
    verbose=True               # 可选:是否在控制台输出
)

步骤 2:将 Logger 传递给 AsyncWebCrawler

在初始化 AsyncWebCrawler 时,通过 logger 参数传入自定义的 Logger:

# 初始化爬虫并注入自定义 Logger
crawler = AsyncWebCrawler(
    logger=custom_logger,  # 注入 Logger
    # 其他参数...
)

完整示例代码

from crawl4ai import AsyncWebCrawler
from crawl4ai.async_logger import AsyncLogger, LogLevel

# 1. 创建自定义 Logger,仅记录 ERROR 及以上级别
custom_logger = AsyncLogger(
    log_level=LogLevel.ERROR,
    log_file="crawl_errors.log",
    verbose=True
)

# 2. 初始化爬虫并传入 Logger
crawler = AsyncWebCrawler(
    logger=custom_logger,
    max_concurrency=5
)

# 3. 运行爬虫(只有 ERROR 日志会输出)
result = await crawler.run(
    url="https://example.com",
    strategy="Screenshot",
    timeout=60
)

关键点说明

  1. 日志级别生效范围

    • 设置为 LogLevel.ERROR 后,只有 ERRORCRITICALFATAL 等更高级别的日志会被记录。
    • 低级日志(如 DEBUGINFO)会被自动过滤。
  2. 文件与控制台输出

    • 如果 verbose=True,日志会同时输出到控制台和文件(若配置了 log_file)。
    • 若需仅记录到文件,可设置 verbose=False
  3. 自定义 Logger 的灵活性

    • 支持自定义图标(icons 参数)和颜色(colors 参数)。
    • 示例:修改错误日志的颜色:
      custom_logger = AsyncLogger(
          log_level=LogLevel.ERROR,
          colors={
              LogLevel.ERROR: "magenta",  # 将 ERROR 日志颜色设为洋红色
          }
      )
      

验证日志级别

运行后,控制台和日志文件将仅显示类似以下内容:

[ERROR]...... × Connection failed: Timeout
[CRITICAL]... ‼ Critical resource missing

低级日志(如 DEBUGINFO)不再输出。


通过以上方法,即可在 Crawl4AI 0.6.3 中精准控制日志级别为 ERROR,确保仅输出关键错误信息。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐