logging

โดย cloudflare

ใช้เมื่อเพิ่มบันทึก การดีบัก หรือทำงานกับ Logger ใน SDK และรันไทม์ของคอนเทนเนอร์ ครอบคลุมรูปแบบการฉีดคอนสตรัคเตอร์ โลเกอร์ย่อย...

npx skills add https://github.com/cloudflare/sandbox-sdk --skill logging

Logging

Pattern: Explicit Constructor Injection

Loggers are passed explicitly via constructor injection throughout the codebase. There is no global/ambient logger.

import type { Logger } from '@repo/shared';

class MyService {
  constructor(private logger: Logger) {}

  async doWork(context: WorkContext) {
    const childLogger = this.logger.child({ operation: 'work' });
    childLogger.info('Working', { context });
  }
}

Child loggers

Use logger.child({ ... }) to attach structured context that will appear on every log line from that child. Prefer child loggers at the boundary of a unit of work (request, operation, session) rather than re-passing context on every call.

Configuration

Two environment variables, both read once at startup:

VarValuesPurpose
SANDBOX_LOG_LEVELdebug | info | warn | errorMinimum level emitted
SANDBOX_LOG_FORMATjson | prettyOutput format

Use json in production (machine-parseable) and pretty for local dev.

In Tests

Use createNoOpLogger() from @repo/shared to silence logging in tests:

import { createNoOpLogger } from '@repo/shared';

const service = new MyService(createNoOpLogger());

Don't construct real loggers in unit tests — they add noise and can mask real failures with log output.

When Adding Logs

  • Log at info for significant lifecycle events (operation started/completed)
  • Log at debug for fine-grained tracing (request bodies, intermediate state)
  • Log at warn for recoverable anomalies
  • Log at error for failures that surface to the caller; include the error object as structured context: logger.error('Failed', { err })
  • Pass structured context as the second argument, not via string interpolation

Skills เพิ่มเติมจาก cloudflare

workerd-api-review
cloudflare
การปรับแต่งประสิทธิภาพ การออกแบบและความเข้ากันได้ของ API ช่องโหว่ด้านความปลอดภัย และการปฏิบัติตามข้อกำหนดมาตรฐานสำหรับการตรวจสอบโค้ด workerd ครอบคลุมถึง tcmalloc-aware…
official
workerd-safety-review
cloudflare
ความปลอดภัยของหน่วยความจำ ความปลอดภัยของเธรด การทำงานพร้อมกัน และรูปแบบการตรวจจับที่สำคัญสำหรับการตรวจสอบโค้ด workerd ครอบคลุมถึงอันตรายที่ขอบเขต V8/KJ การจัดการอายุการใช้งาน…
official
module-registry
cloudflare
โหลดเมื่อทำงานกับ module registry ใน workerd — การอ่าน, แก้ไข, ดีบัก, หรือตรวจสอบการแก้ไขโมดูล, การคอมไพล์, การประเมินผล, หรือการลงทะเบียน…
official
reproduce
cloudflare
ทำซ้ำปัญหา GitHub ของ cloudflare/agents โดยการสร้างโปรเจกต์ Agents/Worker ขั้นต่ำและปรับใช้กับบัญชี Cloudflare ชั่วคราว จากนั้นรายงาน…
official
local-explorer
cloudflare
วิธีการเพิ่มผลิตภัณฑ์/ทรัพยากรไปยัง local explorer หรือ local API ใช้เมื่อกำลังใช้งาน local API ใหม่ หรือเส้นทาง UI ภายใต้…
official
commit-categories
cloudflare
กฎการจัดหมวดหมู่คอมมิตสำหรับ changelog และสรุป "มีอะไรใหม่" ต้องโหลดก่อนการจัดหมวดหมู่คอมมิตในคำสั่ง changelog หรือ whats-new ให้ข้อมูล…
official
architecture
cloudflare
ใช้เมื่อนำทางในโค้ดเบสเป็นครั้งแรก เพิ่มเมธอดไคลเอ็นต์ใหม่ เพิ่มคอนเทนเนอร์แฮนเดลเลอร์/บริการใหม่ หรือทำความเข้าใจการไหลของคำขอ...
official
changesets
cloudflare
ใช้เมื่อสร้างชุดการเปลี่ยนแปลง เตรียมการเผยแพร่ หรือเพิ่มเวอร์ชัน ครอบคลุมถึงแพ็กเกจที่ต้องอ้างอิง วิธีการเขียนคำอธิบายชุดการเปลี่ยนแปลงที่ผู้ใช้เห็น…
official