跳转到主要内容

概述

在 PPIO Agent 沙箱中执行代码后,通常需要获取运行日志进行调试和分析。本文档介绍如何将代码的日志重定向到文件,并从沙箱下载到客户端(本地)。详细文件系统操作可参考 下载文件 涵盖两种场景:
  1. 代码本身没有日志配置 — 通过 stdout/stderr 重定向捕获日志
  2. 代码本身已有日志配置(如 Python logging 输出到文件) — 直接下载已有的日志文件

场景一:代码无日志配置,通过重定向捕获日志

方案 A:使用 commands.run() + Shell 重定向

通过 Shell 的 > / 2>&1 将 stdout 和 stderr 重定向到沙箱内的日志文件,然后下载。

方案 B:使用 run_code() 捕获执行结果中的日志

run_code() 返回的执行结果中自带 logs,可以直接写入文件,无需额外的 Shell 重定向。

场景二:代码已有日志配置,日志输出到指定目录

很多项目代码中已经配置了日志框架(如 Python 的 logging 模块),日志会输出到指定的文件路径。此时只需要知道日志文件的位置,直接从沙箱下载即可。

注意事项

  1. 文件大小:沙箱存储空间为 20 GB,注意日志文件不要太大。
  2. 编码问题sandbox.files.read() 返回的是字符串,如果日志包含二进制内容,可能需要特殊处理。
  3. 沙箱生命周期:日志下载要在 sandbox.kill() 之前完成,沙箱销毁后文件不可恢复。
  4. 并发写入:如果代码有多进程/多线程写日志,建议各自写入不同文件,避免写入冲突。
最后修改于 2026年4月16日