

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Lambda 函式日誌
<a name="monitoring-logs"></a>

為了協助您對失敗進行故障診斷， 會代表您 AWS Lambda 自動監控 Lambda 函數。您可以使用 Lambda 主控台、CloudWatch 主控台、 AWS Command Line Interface (AWS CLI)、CloudWatch API 來檢視 Lambda 函數的日誌。您也可以設定 Lambda 將日誌傳送至 Amazon S3 與 Firehose。

只要函式的[執行角色](lambda-intro-execution-role.md)具有必要許可，Lambda 就會擷取函式處理的所有請求的日誌，並將日誌傳送至預設目的地 Amazon CloudWatch Logs。您也可以透過 Lambda 主控台，將 Amazon S3 或 Firehose 設定為日誌記錄目的地。
+ **CloudWatch Logs** 是 Lambda 函式預設的日誌記錄目的地。CloudWatch Logs 具有即時日誌檢視與分析功能，且支援根據日誌資料建立指標與警示。
+ **Amazon S3** 在長期儲存方面具有經濟效益，且可透過 Athena 等服務對日誌進行分析。延遲通常較高。
+ **Firehose** 提供受管日誌串流功能，可將日誌串流至多種目的地。如果您需要將日誌傳送至 AWS 其他服務 （例如 OpenSearch Service 或 Redshift Data API) 或第三方平台 （例如 Datadog、New Relic 或 Splunk)，Firehose 會透過提供預先建置的整合來簡化該程序。您也可以將日誌串流至自訂 HTTP 端點，無需額外設定基礎結構。

## 選擇用於傳送日誌的服務目的地
<a name="choosing-log-destination"></a>

在選擇要用作函式日誌的服務目的地時，建立考量下列關鍵因素：
+ **成本管理因服務而異。**Amazon S3 通常是最經濟實惠的長期儲存選擇，而 CloudWatch Logs 支援即時檢視日誌、處理日誌和設定提醒。Firehose 成本包括串流服務費用以及與所設定串流目的地相關的費用。
+ **分析功能因服務而異。**CloudWatch Logs 在即時監控方面表現出色，能夠與其他 CloudWatch 功能 (例如 Logs Insights 和 Live Tail) 原生整合。Amazon S3 與 Athena 等分析工具搭配運作良好，並且可以與各種服務整合，但可能需要額外的設定。Firehose 透過提供預先建置的整合，簡化直接串流至特定 AWS 服務 （例如 OpenSearch Service 和 Redshift Data API) 和支援的第三方平台 （例如 Datadog 和 Splunk)，進而減少組態工作。
+ **設定程序與易用性因服務而異。**CloudWatch Logs 是預設的日誌目的地，無需額外設定即可立即運作，支援透過 CloudWatch 主控台直觀地檢視與分析日誌。若需將日誌傳送至 Amazon S3，應先在 Lambda 主控台中執行部分初始設定，並設定儲存貯體許可。若需將日誌直接傳送至 OpenSearch Service 等服務或第三方分析平台，Firehose 可以簡化該流程。

## 設定日誌目的地
<a name="configuring-log-destinations"></a>

AWS Lambda 支援函數日誌的多個目的地。本指南介紹了可用的日誌記錄目的地，能協助您視需求做出正確選擇。無論選擇哪種目的地，Lambda 皆能提供用於控制日誌格式、篩選條件與傳送方式的相關選項。

Lambda 支援 JSON 與純文字格式的函式日誌。JSON 結構化日誌能夠提升可搜尋性，支援自動化分析；而純文字日誌較為簡潔，可能降低儲存成本。您可以透過設定系統與應用程式日誌的日誌層級，控制 Lambda 傳送至所選目的地的日誌。篩選功能可協助您管理儲存成本，讓您在偵錯期間更輕鬆地找到相關的日誌項目。

如需每個目的地的詳細設定說明，請參閱下列各節：
+ [將 Lambda 函式日誌傳送至 CloudWatch Logs](monitoring-cloudwatchlogs.md)
+ [將 Lambda 函式日誌傳送至 Firehose](logging-with-firehose.md)
+ [將 Lambda 函式日誌傳送至 Amazon S3](logging-with-s3.md)

## 設定 Lambda 函數的進階日誌記錄控制項
<a name="monitoring-cloudwatchlogs-advanced"></a>

為了讓您更全面地掌控函式日誌的擷取、處理與使用方式，Lambda 提供了下列日誌記錄組態選項：
+ **日誌格式** – 在純文字和結構化 JSON 格式之間為函式日誌選擇一種格式。
+ **日誌層級** – 對於 JSON 結構化日誌，請選擇 Lambda 要傳送至 CloudWatch 之日誌的詳細層級，例如 `FATAL`、`ERROR`、`WARN`、`INFO`、`DEBUG` 和 `TRACE`。
+ **日誌群組** – 選擇函式要將日誌傳送到的 CloudWatch 日誌群組。

若要進一步了解如何設定進階日誌記錄控制項，請參閱下列章節：
+ [設定 JSON 和純文字日誌格式](monitoring-cloudwatchlogs-logformat.md)
+ [日誌層級篩選](monitoring-cloudwatchlogs-log-level.md)
+ [設定 CloudWatch 日誌群組](monitoring-cloudwatchlogs-loggroups.md)