repositorypackage
0.0.0-20240102183713-5d420b62bdbe
Repository: https://github.com/brightbock/slogcloud.git
Documentation: pkg.go.dev
# README
AWS Lambda advanced logging controls for structured logs in Go with native "log/slog" module
AWS Lambda supports advanced logging controls[1] that help you manage how your function's logs are captured, processed, and consumed.
This module:
- includes a shortcut
LambdaLogger()
for setting JSON log format in slog. - overrides the name of the time key to
timestamp
(note: not necessary for Lambda). - set the log-level in your application to match the setting in Lambda (note: Lambda will filter logs according using the
level
field in each log and the log-level you set in Lambda function config any way) - provides a
FatalError(...)
function that willslog.Error(...)
and thenos.Exit(1)
How to use it:
package main
import (
"github.com/brightbock/slogcloud"
. "github.com/brightbock/slogcloud/helpers"
"log/slog"
)
func init() {
slog.SetDefault(slogcloud.LambdaLogger())
}
func main() {
slog.Warn("This is a warning!")
FatalError("log and exit with status 1")
}
Output:
{"timestamp":"2023-01-01T01:01:01.000000+00:00","level":"WARN","msg":"This is a warning!"}
{"timestamp":"2023-01-01T01:01:01.000000+00:00","level":"ERROR","msg":"log and exit with status 1"}