commit | 3a7871e7c0b27d7657b02cc774c3210fb78f26e9 | [log] [tgz] |
---|---|---|
author | Jonathan Amsterdam <jba@google.com> | Mon Oct 03 19:47:58 2022 -0400 |
committer | Jonathan Amsterdam <jba@google.com> | Tue Oct 11 10:02:25 2022 +0000 |
tree | 45fff0e548e69124d6ea00f460ae7978c6d18ac2 | |
parent | bddcdfccc6d82d378bdf2e3384cdd64faca9ee43 [diff] |
slog: add WithScope Add Logger.WithScope and Handler.WithScope, which provide a way to scope attribute key names to a specific Logger. For example, if two packages p1 and p2 both use the key "k", but mean different things by it (perhaps use different types), that presents a challenge for backends that ingest logs. But if p1 is passed the Logger resulting from logger.WithScope("p1") and p2 is passed looger.WithScope("p2") then the Handler will qualify "k" by "p1" or "p2", respectively, to produce keys that do not conflict. Logger.WithScope just calls Handler.WithScope, so the implementation is up to the Handler. Some may prepend scopes to key names; others may use a scope name as a key to some nested map of key-value pairs. This CL only defines the WithScope methods. Implementations and tests will be in forthcoming CLs. Change-Id: I45a5d204284e3a46c347b4069bb49ce1f68e63ea Reviewed-on: https://go-review.googlesource.com/c/exp/+/437962 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Alan Donovan <adonovan@google.com>
This subrepository holds experimental and deprecated (in the old
directory) packages.
The idea for this subrepository originated as the pkg/exp
directory of the main repository, but its presence there made it unavailable to users of the binary downloads of the Go installation. The subrepository has therefore been created to make it possible to go get
these packages.
Warning: Packages here are experimental and unreliable. Some may one day be promoted to the main repository or other subrepository, or they may be modified arbitrarily or even disappear altogether.
In short, code in this subrepository is not subject to the Go 1 compatibility promise. (No subrepo is, but the promise is even more likely to be violated by go.exp than the others.)
Caveat emptor.