From 19d6c37a3f2fe8e6fb224832cf59a33c77c06b63 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 30 Aug 2023 21:30:56 +0200 Subject: [PATCH] Revert "log: define G() as a function instead of a variable" This reverts commit 778ac302b27278b25bb2dabfc1cda99780cbc60b. (slightly modified, due to changes that were merged after that). The reverted commit had two elements; - Make `G` an actual function to improve the documentation - Prevent `G` from being overwritten externally From the commit that's reverted: > The `G` variable is exported, and not expected to be overwritten > externally. Defining it as a function also documents it as a function > on https://pkg.go.dev, instead of a variable; https://pkg.go.dev/github.com/containerd/containerd@v1.6.22/log#pkg-variables While it's unclear if the ability to replace the implementation was _intentional_, it's this part that some external consumers were (ab)using. We should look into that part in a follow-up, and design for this, for example by providing a utility to replace the logger, and properly document that. In the meantime, let's revert the change. Signed-off-by: Sebastiaan van Stijn --- log/context.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/log/context.go b/log/context.go index 14ff2a59c..20153066f 100644 --- a/log/context.go +++ b/log/context.go @@ -44,6 +44,12 @@ import ( "github.com/sirupsen/logrus" ) +// G is a shorthand for [GetLogger]. +// +// We may want to define this locally to a package to get package tagged log +// messages. +var G = GetLogger + // L is an alias for the standard logger. var L = &Entry{ Logger: logrus.StandardLogger(), @@ -169,11 +175,6 @@ func WithLogger(ctx context.Context, logger *Entry) context.Context { // GetLogger retrieves the current logger from the context. If no logger is // available, the default logger is returned. func GetLogger(ctx context.Context) *Entry { - return G(ctx) -} - -// G is a shorthand for [GetLogger]. -func G(ctx context.Context) *Entry { if logger := ctx.Value(loggerKey{}); logger != nil { return logger.(*Entry) }