LogGroupLogDestination Class
Use CloudWatch Logs as a custom access log destination for API Gateway.
Example
ts
const logGroup = new logs.LogGroup(this, "ApiGatewayAccessLogs");
new apigateway.RestApi(this, 'books', {
deployOptions: {
accessLogDestination: new apigateway.LogGroupLogDestination(logGroup),
accessLogFormat: apigateway.AccessLogFormat.custom(
`${apigateway.AccessLogField.contextRequestId()} ${apigateway.AccessLogField.contextErrorMessage()} ${apigateway.AccessLogField.contextErrorMessageString()}
${apigateway.AccessLogField.contextAuthorizerError()} ${apigateway.AccessLogField.contextAuthorizerIntegrationStatus()}`
)
}
});
python
log_group = logs.LogGroup(self, "ApiGatewayAccessLogs")
apigateway.RestApi(self, "books",
deploy_options=apigateway.StageOptions(
access_log_destination=apigateway.LogGroupLogDestination(log_group),
access_log_format=apigateway.AccessLogFormat.custom(f"""{apigateway.AccessLogField.contextRequestId()} {apigateway.AccessLogField.contextErrorMessage()} {apigateway.AccessLogField.contextErrorMessageString()}
{apigateway.AccessLogField.contextAuthorizerError()} {apigateway.AccessLogField.contextAuthorizerIntegrationStatus()}""")
)
)
java
LogGroup logGroup = new LogGroup(this, "ApiGatewayAccessLogs");
RestApi.Builder.create(this, "books")
.deployOptions(StageOptions.builder()
.accessLogDestination(new LogGroupLogDestination(logGroup))
.accessLogFormat(AccessLogFormat.custom(String.format("%s %s %s%n %s %s", AccessLogField.contextRequestId(), AccessLogField.contextErrorMessage(), AccessLogField.contextErrorMessageString(), AccessLogField.contextAuthorizerError(), AccessLogField.contextAuthorizerIntegrationStatus())))
.build())
.build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
var logGroup = new LogGroup(this, "ApiGatewayAccessLogs");
new RestApi(this, "books", new RestApiProps {
DeployOptions = new StageOptions {
AccessLogDestination = new LogGroupLogDestination(logGroup),
AccessLogFormat = AccessLogFormat.Custom($@"{apigateway.AccessLogField.contextRequestId()} {apigateway.AccessLogField.contextErrorMessage()} {apigateway.AccessLogField.contextErrorMessageString()}
{apigateway.AccessLogField.contextAuthorizerError()} {apigateway.AccessLogField.contextAuthorizerIntegrationStatus()}")
}
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
logGroup := logs.NewLogGroup(this, jsii.String("ApiGatewayAccessLogs"))
apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{
DeployOptions: &StageOptions{
AccessLogDestination: apigateway.NewLogGroupLogDestination(logGroup),
AccessLogFormat: apigateway.AccessLogFormat_Custom(
fmt.Sprintf("%v %v %v\n %v %v", apigateway.AccessLogField_ContextRequestId(), apigateway.AccessLogField_ContextErrorMessage(), apigateway.AccessLogField_ContextErrorMessageString(), apigateway.AccessLogField_ContextAuthorizerError(), apigateway.AccessLogField_ContextAuthorizerIntegrationStatus())),
},
})
Initializer
ts
new LogGroupLogDestination(logGroup: ILogGroupRef)
python
LogGroupLogDestination(log_group: ILogGroupRef)
java
new LogGroupLogDestination(ILogGroupRef logGroup)
csharp
new LogGroupLogDestination(ILogGroupRef logGroup)
go
NewLogGroupLogDestination(LogGroup ILogGroupRef)
Methods
bind(_stage: IStageRef): AccessLogDestinationConfigdef bind(self, _stage: IStageRef) -> AccessLogDestinationConfigpublic AccessLogDestinationConfig bind(IStageRef _stage)public AccessLogDestinationConfig Bind(IStageRef _stage)func Bind(_stage IStageRef) AccessLogDestinationConfig#Binds this destination to the CloudWatch Logs.