tree 1ba97f67779913c39a9e871575e6744dd9ea5230
parent 4de253d81b957fba808c13ea360fffd9f7f56db1
author Jonathan Amsterdam <jba@google.com> 1665023993 -0400
committer Jonathan Amsterdam <jba@google.com> 1666126223 +0000

slog: Loggers hold contexts

This CL provides a way to pass contexts to Handlers.

It is often asked that Handler.Handle be given access to the context
of the log line. The main reason is to allow logs to contain a trace
ID, so they can be correlated with tracing. Observability systems like
Open Telemetry store trace information in the context.

The usual suggestion is to add a context argument to log methods:

    slog.Info(ctx, "message")

But that imposes a burden on all users, even those who don't need
the context.

Another solution is to create a new Logger each time a new trace
element ("span" in Open Telemetry terminology) is created, with an
attribute containing the span (or the context). This means that
everyone who creates a span must remember to create a Logger as well,
or it requires wrapping this package in another, context-aware one.

This CL implements the following alternative:

- A Logger now holds a context as well as a Handler.

- Logger.Context returns this context.

- Logger.WithContext returns a new Logger with a given context.

- To avoid allocation in WithContext, Logger is changed from a pointer
  type to a value type. Since it is immutable, its semantics are
  unchanged. Its size is quadrupled (from a one-word pointer to a
  four-word struct); our benchmarks show small slowdowns for the
  fastest operations (that make unrealistically optimistic
  assumptions), and none for slower (and more practical) ones.

- Record has a new ctx field and a Context method to retrieve it.

- NewRecord gains an additional argument for the context.

- When a Logger l creates a Record r to pass to a Handler, it
  sets r.ctx to l.ctx.

- The top-level Ctx function both retrieves a Logger from a given
  context, and adds that context to the logger: it is equivalent to
      FromContext(ctx).WithContext(ctx)

Change-Id: I552b722c118d11406a05412e999c0b629b50228c
Reviewed-on: https://go-review.googlesource.com/c/exp/+/439059
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
