How does AWS App Runner decide which logs to persist to CloudWatch?

17 views Asked by At

I searched the App runner config for the application but with no luck. I also read the docs here https://docs.aws.amazon.com/apprunner/latest/dg/monitor-cwl.html, but I can't seem to find the answer.

Our application has a mix of debug/info/error logs in this format:

{"level":"info","caller":"app/main.go:61","msg":"connecting to postgres database","version":""}

It seems that certain error logs of "level" : "error" are persisted to CloudWatch. However, not all of them are for some reason, and I don't know why.

For example I added this logline which triggers whenever any of our Handlers generate a 5xx

{"level":"error","caller":"api/routes.go:28","msg":"incoming request","version":"","uri":"/api/v1/users/profile","status":500,"method":"PUT","duration":"512ms","stacktrace":"<stacktrace>"}

But this never persists in CloudWatch for some reason

1

There are 1 answers

0
Qwertyzw On

Stdout/stderr both go to CW logs. We just a bad combination of config + code which caused that line not to print in production