

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# sam logs
<a name="sam-cli-command-reference-sam-logs"></a>

本页提供 AWS Serverless Application Model 命令行界面 (AWS SAMCLI) `sam logs` 命令的参考信息。

有关简介 AWS SAMCLI，请参阅 [那是什么 AWS SAMCLI？](what-is-sam-overview.md#what-is-sam-cli)

该`sam logs`命令会获取您的 AWS Lambda 函数生成的日志。

## 用法
<a name="sam-cli-command-reference-sam-logs-usage"></a>

```
$ sam logs <options>
```

## 选项
<a name="sam-cli-command-reference-sam-logs-options"></a>

`--config-env TEXT`  <a name="sam-cli-command-reference-sam-logs-options-config-env"></a>
在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息，请参阅 [AWS SAMCLI 配置文件](serverless-sam-cli-config.md)。

`--config-file PATH`  <a name="sam-cli-command-reference-sam-logs-options-config-file"></a>
包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中，默认值为“samconfig.toml”。有关配置文件的详细信息，请参阅 [AWS SAMCLI 配置文件](serverless-sam-cli-config.md)。

`--cw-log-group LIST`  <a name="sam-cli-command-reference-sam-logs-options-cw-log-group"></a>
包括您指定的 CloudWatch 日志日志组中的日志。如果同时指定此选项`name`，则除了来自指定资源的日志外，还 AWS SAM 包括来自指定日志组的日志。

`--debug`  <a name="sam-cli-command-reference-sam-logs-options-debug"></a>
启用调试日志记录，以打印 AWS SAM CLI 生成的调试消息并显示时间戳。

`---end-time, e TEXT`  <a name="sam-cli-command-reference-sam-logs-options-end-time"></a>
获取到目前为止的日志。时间可以是相对值，例如“5 分钟前”、“明天”，也可以是格式化的时间戳，例如 “2018-01-01 10:10:10”。

`--filter TEXT`  <a name="sam-cli-command-reference-sam-logs-options-filter"></a>
允许您指定表达式以在日志事件中快速查找匹配字词、短语或值的日志。这可以是一个简单的关键词（例如，“错误”），也可以是 Amazon Logs 支持的 CloudWatch 模式。有关语法，请参阅 [Amazon CloudWatch 日志文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)。

`--help`  <a name="sam-cli-command-reference-sam-logs-options-help"></a>
显示此消息并退出。

`--include-traces`  <a name="sam-cli-command-reference-sam-logs-options-include-traces"></a>
在日志输出中包含 X-Ray 跟踪。

`--name, -n TEXT`  <a name="sam-cli-command-reference-sam-logs-options-name"></a>
要获取日志的资源名称。如果此资源是 CloudFormation 堆栈的一部分，则可以是 CloudFormation/AWS SAM 模板中函数资源的逻辑 ID。再次重复该参数可以提供多个名称。如果资源位于嵌套堆栈中，则可以在名称前面加上嵌套堆栈名称以从该资源提取日志 (NestedStackLogicalId/ResourceLogicalId)。如果未给出资源名称，则将扫描给定的堆栈，并提取所有支持的资源的日志信息。如果您未指定此选项，则会 AWS SAM 获取您指定的堆栈中所有资源的日志。支持以下资源类型：  
+ `AWS::Serverless::Function`
+ `AWS::Lambda::Function`
+ `AWS::Serverless::Api`
+ `AWS::ApiGateway::RestApi`
+ `AWS::Serverless::HttpApi`
+ `AWS::ApiGatewayV2::Api`
+ `AWS::Serverless::StateMachine`
+ `AWS::StepFunctions::StateMachine`

`--output TEXT`  <a name="sam-cli-command-reference-sam-logs-options-output"></a>
指定日志的输出格式。要打印格式化的日志，请指定 `text`。要以 JSON 格式打印日志，请指定 `json`。

`--profile TEXT`  <a name="sam-cli-command-reference-sam-logs-options-profile"></a>
您的凭证文件中用于获取 AWS 凭证的特定个人资料。

`--region TEXT`  <a name="sam-cli-command-reference-sam-logs-options-region"></a>
要部署到的 AWS 区域。例如，us-east-1。

`--save-params`  <a name="sam-cli-command-reference-sam-logs-options-save-params"></a>
将您在命令行中提供的参数保存到 AWS SAM 配置文件中。

`--stack-name TEXT`  <a name="sam-cli-command-reference-sam-logs-options-stack-name"></a>
资源所 CloudFormation 属堆栈的名称。

`--start-time, -s TEXT`  <a name="sam-cli-command-reference-sam-logs-options-start-time"></a>
从此时开始获取日志。时间可以是相对值，例如“5 分钟前”、“昨天”，也可以是格式化的时间戳，例如 “2018-01-01 10:10:10”。默认为“10 分钟前”。

` --tail, -t`  <a name="sam-cli-command-reference-sam-logs-options-tail"></a>
输出日志尾部内容。这会忽略结束时间参数，并在日志可用时持续获取。

## 示例
<a name="sam-cli-command-reference-sam-logs-examples"></a>

当您的函数是 CloudFormation 堆栈的一部分时，您可以在指定堆栈名称时使用该函数的逻辑 ID 来获取日志。

```
$ sam logs -n HelloWorldFunction --stack-name myStack
```

使用 -s (--start-time) 和 -e (--end-time) 选项查看特定时间范围的日志。

```
$ sam logs -n HelloWorldFunction --stack-name myStack -s '10min ago' -e '2min ago'
```

您还可以添加 `--tail` 选项以等待新日志并在它们到达时查看。

```
$ sam logs -n HelloWorldFunction --stack-name myStack --tail
```

使用 `--filter` 选项在日志事件中快速查找匹配字词、短语或值的日志：

```
$ sam logs -n HelloWorldFunction --stack-name myStack --filter "error"
```

查看子堆栈中资源的日志。

```
$ sam logs --stack-name myStack -n childStack/HelloWorldFunction
```

输出应用程序中所有受支持资源的日志尾部内容。

```
$ sam logs --stack-name sam-app --tail
```

在应用程序中获取特定 Lambda 函数和 API Gateway API 的日志。

```
$ sam logs --stack-name sam-app --name HelloWorldFunction --name HelloWorldRestApi
```

获取应用程序中所有受支持资源的日志，此外还从指定的日志组中获取日志。

```
$ sam logs --cw-log-group /aws/lambda/myfunction-123 --cw-log-group /aws/lambda/myfunction-456
```