mirror of
https://github.com/stashapp/stash.git
synced 2025-12-10 10:22:18 +01:00
* Upgrade gqlgen to v0.17.2 This enables builds on Go 1.18. github.com/vektah/gqlparser is upgraded to the newest version too. Getting this to work is a bit of a hazzle. I had to first remove vendoring from the repository, perform the upgrade and then re-introduce the vendor directory. I think gqlgens analysis went wrong for some reason on the upgrade. It would seem a clean-room installation fixed it. * Bump project to 1.18 * Update all packages, address gqlgenc breaking changes * Let `go mod tidy` handle the go.mod file * Upgrade linter to 1.45.2 * Introduce v1.45.2 of the linter The linter now correctly warns on `strings.Title` because it isn't unicode-aware. Fix this by using the suggested fix from x/text/cases to produce unicode-aware strings. The mapping isn't entirely 1-1 as this new approach has a larger iface: it spans all of unicode rather than just ASCII. It coincides for ASCII however, so things should be largely the same. * Ready ourselves for errchkjson and contextcheck. * Revert dockerfile golang version changes for now Co-authored-by: Kermie <kermie@isinthe.house> Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package zerolog
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
var disabledLogger *Logger
|
|
|
|
func init() {
|
|
SetGlobalLevel(TraceLevel)
|
|
l := Nop()
|
|
disabledLogger = &l
|
|
}
|
|
|
|
type ctxKey struct{}
|
|
|
|
// WithContext returns a copy of ctx with l associated. If an instance of Logger
|
|
// is already in the context, the context is not updated.
|
|
//
|
|
// For instance, to add a field to an existing logger in the context, use this
|
|
// notation:
|
|
//
|
|
// ctx := r.Context()
|
|
// l := zerolog.Ctx(ctx)
|
|
// l.UpdateContext(func(c Context) Context {
|
|
// return c.Str("bar", "baz")
|
|
// })
|
|
func (l *Logger) WithContext(ctx context.Context) context.Context {
|
|
if lp, ok := ctx.Value(ctxKey{}).(*Logger); ok {
|
|
if lp == l {
|
|
// Do not store same logger.
|
|
return ctx
|
|
}
|
|
} else if l.level == Disabled {
|
|
// Do not store disabled logger.
|
|
return ctx
|
|
}
|
|
return context.WithValue(ctx, ctxKey{}, l)
|
|
}
|
|
|
|
// Ctx returns the Logger associated with the ctx. If no logger
|
|
// is associated, DefaultContextLogger is returned, unless DefaultContextLogger
|
|
// is nil, in which case a disabled logger is returned.
|
|
func Ctx(ctx context.Context) *Logger {
|
|
if l, ok := ctx.Value(ctxKey{}).(*Logger); ok {
|
|
return l
|
|
} else if l = DefaultContextLogger; l != nil {
|
|
return l
|
|
}
|
|
return disabledLogger
|
|
}
|