

# CloudFront 和边缘函数日志记录
<a name="logging"></a>

Amazon CloudFront 提供不同类型的日志记录。您可以记录到达您的 CloudFront 分配的查看器请求，也可以在 Amazon 账户中记录 CloudFront 服务活动（API 活动）。您还可以从 CloudFront Functions 和 Lambda @Edge 函数获取日志。

## 记录请求
<a name="logging-requests"></a>

CloudFront 提供了以下方法来记录到达分配的请求。

**访问日志（标准日志）**  
CloudFront 访问日志提供有关向分配发出的每个请求的详细记录。您可以将日志用于安全和访问审计等场景。  
CloudFront 访问日志将传输到您指定的传输目标。  
在需要完成以下任务时，可使用访问日志：  
+ 进行历史分析和报告
+ 满足安全性审计与合规性要求
+ 实现经济实惠的长期日志保留
有关更多信息，请参阅 [访问日志（标准日志）](AccessLogs.md)。

**实时访问日志**  
CloudFront 实时访问日志会在接收到请求后的数秒内完成传输，并且可实时提供有关向分配发出的请求的信息。您可以选择实时访问日志的*采样率*，即希望接收实时访问日志记录的请求的百分比。您还可以选择希望在日志记录中接收的特定字段。实时访问日志非常适合实时监控内容分发性能。  
CloudFront 实时访问日志将传送到 Amazon Kinesis Data Streams 中您选择的数据流。CloudFront 除了收取因使用 Kinesis Data Streams 产生的费用外，还针对实时访问日志进行收费。  
在以下需求场景下，可使用实时访问日志：  
+ 实时监控并发送警报
+ 实时控制面板与运营洞察
有关更多信息，请参阅 [使用实时访问日志](real-time-logs.md)。

**连接日志**  
连接日志为已启用 mTLS 的分配提供有关服务器和客户端之间的连接的详细信息。通过查看连接日志，可以了解客户端证书信息、mTLS 身份验证失败的原因以及已允许还是拒绝连接。  
与访问日志（标准日志）类似，连接日志将传输到您指定的传输目标。  
 要启用连接日志，您必须先为分配[启用 mTLS](mtls-authentication.md)。
在需要完成以下任务时，可使用连接日志：  
+ 了解 TLS 握手过程中连接成功或失败的原因 
+ 获取客户端证书信息
有关更多信息，请参阅 [使用连接日志实现可观测性](connection-logs.md)。

## 记录边缘函数
<a name="logging-edge-functions"></a>

可以使用 Amazon CloudWatch Logs 获取边缘函数（包括 Lambda@Edge 和 CloudFront Functions）的日志。可以使用 CloudWatch 控制台或 CloudWatch Logs API 访问日志。有关更多信息，请参阅 [边缘函数日志](edge-functions-logs.md)。

## 记录服务活动
<a name="logging-service-activity"></a>

您可以使用 Amazon CloudTrail 在您的 Amazon 账户中记录 CloudFront 服务活动（API 活动）。CloudTrail 提供了用户、角色或 Amazon 服务在 CloudFront 中所执行 API 操作的记录。使用 CloudTrail 收集的信息，您可以确定向 CloudFront 发出了什么 API 请求、发出请求的 IP 地址、何人发出的请求、发出请求的时间以及其他详细信息。

有关更多信息，请参阅 [使用 Amazon CloudTrail 记录 Amazon CloudFront API 调用](logging_using_cloudtrail.md)。

有关日志记录的更多信息，请参阅以下主题：

**Topics**
+ [记录请求](#logging-requests)
+ [记录边缘函数](#logging-edge-functions)
+ [记录服务活动](#logging-service-activity)
+ [访问日志（标准日志）](AccessLogs.md)
+ [使用实时访问日志](real-time-logs.md)
+ [边缘函数日志](edge-functions-logs.md)
+ [使用 Amazon CloudTrail 记录 Amazon CloudFront API 调用](logging_using_cloudtrail.md)