package logimport// Helper wraps a Logger with leveled convenience methods for call sites. It is a// thin value type; adapters implement Logger, not Helper.//// Build one with For; the zero Helper logs to Nop.typeHelperstruct {lLogger// underlying logger, returned by Logger()// leveled is l with one extra caller-skip frame, so the leveled methods // below report their own caller rather than Helper. It is built once by For // to avoid adjusting caller depth on every call.leveledLogger}// For returns a Helper writing to l, or to Nop if l is nil.func ( Logger) Helper { = OrNop()// The leveled methods add one frame between the call site and the logger; // skip it so caller-computing adapters report the caller, not Helper.returnHelper{l: , leveled: AddCallerSkip(, 1)}}func ( Helper) () Logger {if .l == nil {returnNop }return .l}func ( Helper) () Logger {if .leveled == nil {returnNop }return .leveled}// Logger returns the underlying Logger, never nil.func ( Helper) () Logger {return .logger()}// With returns a Helper whose logger attaches attrs to every record. See With.func ( Helper) ( ...Attr) Helper {returnFor(With(.logger(), ...))}// Named returns a Helper whose logger is tagged with name. See Named.func ( Helper) ( string) Helper {returnFor(Named(.logger(), ))}// Enabled reports whether a record at level would be recorded.func ( Helper) ( context.Context, Level) bool {return .logger().Enabled(, )}// Debug logs at LevelDebug.func ( Helper) ( context.Context, string, ...Attr) { .leveledLogger().Log(, LevelDebug, , ...)}// Info logs at LevelInfo.func ( Helper) ( context.Context, string, ...Attr) { .leveledLogger().Log(, LevelInfo, , ...)}// Warn logs at LevelWarn.func ( Helper) ( context.Context, string, ...Attr) { .leveledLogger().Log(, LevelWarn, , ...)}// Error logs at LevelError.func ( Helper) ( context.Context, string, ...Attr) { .leveledLogger().Log(, LevelError, , ...)}
The pages are generated with Goldsv0.8.4. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.