Serverless Offline 搭配Golang时日志未输出到控制台反而部分作为HTTP响应返回的问题
Serverless Offline 搭配Golang时日志未输出到控制台反而部分作为HTTP响应返回的问题
我最近在用Serverless Offline搭配Golang开发AWS Lambda函数时,碰到了一个奇怪的日志输出问题,具体情况如下:
配置与代码示例
serverless.yml 配置
service: go-sls # Define your service name provider: name: aws runtime: go1.x region: eu-central-1 # Put your AWS region functions: health: handler: main.go # route to binary events: - http: path: /health method: get cors: true private: false plugins: - serverless-offline
main.go 代码
package main import ( "context" "fmt" "log" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) type Response events.APIGatewayProxyResponse func Handler(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { log.Println("trying log") fmt.Println("it prints") return events.APIGatewayProxyResponse{Body: "It works!", StatusCode: 200}, nil } func main() { lambda.Start(Handler) }
实际运行结果
fmt.Println("it prints")的内容完全没有出现在本地控制台log.Println("trying log")的内容没有打印到控制台,反而被包含在了HTTP响应的返回内容中,我用Postman测试的结果如下:

预期行为
我原本期望fmt.Println输出的it prints和log.Println输出的trying log,都能正常输出到本地运行Serverless Offline的控制台里,而不是出现在HTTP响应中。
备注:内容来源于stack exchange,提问作者Belle_meee
相关产品推荐
相关产品推荐

