Skip to content

Logs from some loggers are not synced/flushed #104

Open
@amanbolat

Description

@amanbolat

Issue: when i use zerolog or zap loggers 60% of time logs are not synced, so they are not displayed in CloudWatch.

Code of my handler:

var handlerInitialized = false
var chiAdapter *chiadapter.ChiLambda
var logger *zerolog.Logger

func Handler(req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
	if !handlerInitialized {
		logger = zerolog.New(os.Stderr)
		logger.Info("cold_start")

		api := server.NewAPI(&logger)
		chiAdapter = chiadapter.New(api.Router())
		handlerInitialized = true
	}

	return chiAdapter.Proxy(req)
}

func main() {
	lambda.Start(Handler)
}

used: https://github.com/awslabs/aws-lambda-go-api-proxy

Half of logs that comes from http Handlers and middlewares are not shown.

I found that only standard logger and https://github.com/apex/log work correctly.
I already asked this question in many places, and tried to use zap's logger.Sync() to flush, but it doesn't help.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions