技能 structured-logging
📋

structured-logging

安全 🌐 網路存取📁 檔案系統存取⚙️ 外部命令🔑 環境變數

實作結構化 JSON 日誌記錄

也可從以下取得: Chemiseblanc

傳統的 console 日誌難以搜尋和解析。此技能提供實作 JSON 結構化日誌記錄的模式和程式碼範例,讓您能夠在各個服務中進行強大的篩選、聚合和可觀測性分析。

支援: Claude Codex Code(CC)
📊 71 充足
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「structured-logging」。 Set up structured logging for my Node.js API

預期結果:

  • 建立 logger.ts 並配置 Pino 以輸出 JSON
  • 新增基於環境的日誌層級(生產環境為 info,開發環境為 debug)
  • 包含基礎欄位:服務名稱、環境、requestId
  • 使用 pino-pretty transport 以提高開發環境的可讀性
  • 為敏感欄位配置 redact 選項

正在使用「structured-logging」。 How do I trace a user request through multiple services?

預期結果:

  • 在 API 入口點使用 crypto.randomUUID() 生成唯一的 requestId
  • 透過 AsyncLocalStorage 在所有非同步操作中傳播 requestId
  • 在每個日誌項目中包含 requestId 以便關聯
  • 為上游服務通訊設定 x-request-id header

安全審計

安全
v5 • 1/17/2026

This is a documentation-only skill containing logging best practices and code examples. All code is illustrative, demonstrating legitimate patterns like Pino/Winston configuration, AsyncLocalStorage context propagation, and sensitive data redaction. No executable code, no network calls, no credential access patterns. The static scanner flagged generic patterns in documentation examples that are false positives.

2
已掃描檔案
632
分析行數
4
發現項
5
審計總數
審計者: claude 查看審計歷史 →

品質評分

38
架構
100
可維護性
85
內容
31
社群
100
安全
91
規範符合性

你能建構什麼

生產環境日誌記錄設定

使用 Pino 或 Winston 為生產服務配置結構化日誌記錄,以改善除錯和可觀測性。

日誌聚合管道

設定將日誌傳送至 ELK Stack 或 Datadog,並正確傳播追蹤上下文。

API 請求追蹤

實作請求 ID 中介軟體和上下文感知日誌記錄,以在微服務之間追蹤請求。

試試這些提示

基本 logger 設定
Set up Pino logger with environment-based log level, service name, and development pretty-print mode.
上下文傳播
Create AsyncLocalStorage context to propagate requestId and userId across all async operations.
敏感資料脫敏
Configure Pino redact option to mask passwords, tokens, API keys, and credit card numbers.
日誌聚合
Create Winston transport that sends JSON logs to Elasticsearch for the ELK Stack.

最佳實務

  • 始終使用 ISO 8601 時間戳記,以確保跨系統的日誌解析一致性
  • 在所有日誌中包含 requestId,以啟用跨服務的分散式追蹤
  • 永遠不要記錄敏感資料,如密碼、權杖或信用卡號碼

避免

  • 使用字串插值記錄非結構化字串,而非 JSON 物件
  • 在日誌輸出中包含敏感憑證或個人資料
  • 在生產環境中過度記錄除錯日誌,導致效能問題和日誌膨脹

常見問題

我應該選擇哪個日誌記錄函式庫?
建議新專案使用 Pino,因為它的開銷最小且效能卓越。
在生產環境中我應該使用什麼日誌層級?
在生產環境中使用 info 層級以減少雜訊。僅在疑難排解時啟用 debug 或 trace。
如何為所有日誌項目新增上下文?
使用 AsyncLocalStorage 儲存 requestId 和 userId。建立一個包含上下文的包裝 logger。
我的敏感資料在日誌中安全嗎?
使用 Pino redact 選項或自訂清理功能為敏感欄位配置脫敏。
為什麼我的日誌沒有出現在 ELK 中?
確保 JSON 格式輸出,驗證 Filebeat 可以解析您的格式,檢查 Elasticsearch 連線。
這與 console.log 相比如何?
結構化日誌記錄提供可搜尋的 JSON 輸出,不同於 console.log。可啟用聚合和告警。

開發者詳情

檔案結構

📄 SKILL.md