Skip to main content
이 예시에서는 CWSANDBOX_API_KEY에 설정된 CoreWeave API 액세스 토큰을 사용합니다. Forge API 키 인증 방법은 시작하기를 참조하세요. CKS 요구 사항은 배치 모드를 참조하세요. 이 가이드에서는 샌드박스에서 컨테이너 로그를 캡처하여 메인 프로세스의 동작을 모니터링하고, 실패를 디버깅하거나, 샌드박스가 중단된 후 출력을 확인하는 방법을 설명합니다. 컨테이너 로그는 샌드박스의 메인 프로세스에서 발생하는 stdout 및 stderr입니다. stream_logs()로 스트리밍하세요. 이 메서드는 Sandbox.run()에 전달된 명령어의 출력을 캡처합니다. exec() 명령어의 출력은 포함되지 않습니다. 해당 출력에는 Process.stdout 또는 Process.stderr를 사용하세요. stream_logs()는 로그 줄을 생성하는 StreamReader를 반환합니다. 동기 또는 비동기 방식으로 순회하세요.
명령어 없이 Sandbox.run()을 호출하면 샌드박스의 기본 명령어가 stdout 또는 stderr에 쓰지 않으므로 stream_logs()는 출력을 반환하지 않습니다. stdout 또는 stderr에 쓰는 명령어를 전달하세요.

최근 로그 조회

tail_lines를 사용하여 전체 이력을 스트리밍하지 않고 가장 최근 로그 줄을 가져오세요. 실행 중인 샌드박스를 빠르게 확인할 때 유용합니다.

팔로우 모드

tail -f처럼 로그를 지속적으로 스트리밍합니다. iterator는 새 데이터가 도착할 때까지 대기합니다.
팔로우 모드에서 순회 중에 중지하려면 Ctrl+C를 누르세요.

시간별 필터링

since_time을 전달하면 특정 타임스탬프 이후의 로그만 가져옵니다. 이를 통해 출력을 배포 또는 인시던트 이후의 로그와 같은 관심 윈도우로 좁힐 수 있습니다.

타임스탬프

timestamps=True로 설정하면 각 줄 앞에 서버의 ISO 8601 타임스탬프가 추가됩니다. 서버 측 타임스탬프는 샌드박스 이벤트를 다른 시스템과 연관 짓는 데 도움이 됩니다.

비동기 순회

애플리케이션에서 asyncio를 사용하는 경우, 이벤트 루프가 차단되지 않도록 async for로 동일한 StreamReader를 순회하세요.

중단된 샌드박스에서 로그 가져오기

샌드박스가 중단된 후에도 로그를 사용할 수 있으므로, 실패 원인을 조사하거나 완료된 작업의 출력을 검토할 수 있습니다. 완료, 실패 또는 종료된 샌드박스에서 과거 로그를 가져오세요:
중단된 샌드박스는 follow=False(기본값)만 지원합니다.

참고 자료

마지막 수정일 2026년 10월 15일