Documentation ¶
Index ¶
- Constants
- func AppOut(ctx *cli.Context) io.Writer
- func CLIFlags(envPrefix string) []cli.Flag
- func CLIFlagsWithCategory(envPrefix string, category string) []cli.Flag
- func FormatHandler(ft FormatType, color bool) func(io.Writer) slog.Handler
- func LevelFromString(lvlString string) (slog.Level, error)
- func NewLogHandler(wr io.Writer, cfg CLIConfig) slog.Handler
- func NewLogger(wr io.Writer, cfg CLIConfig) log.Logger
- func NewLoggingMiddleware(lgr log.Logger, next http.Handler) http.Handler
- func SetGlobalLogHandler(h slog.Handler)
- func SetupDefaults()
- type CLIConfig
- type DynamicLogHandler
- func (d *DynamicLogHandler) Enabled(ctx context.Context, lvl slog.Level) bool
- func (d *DynamicLogHandler) Handle(ctx context.Context, r slog.Record) error
- func (d *DynamicLogHandler) SetLogLevel(lvl slog.Level)
- func (d *DynamicLogHandler) WithAttrs(attrs []slog.Attr) slog.Handler
- func (d *DynamicLogHandler) WithGroup(name string) slog.Handler
- type FormatFlagValue
- type FormatType
- type LevelFlagValue
- type LvlSetter
- type Writer
Constants ¶
const ( LevelFlagName = "log.level" FormatFlagName = "log.format" ColorFlagName = "log.color" PidFlagName = "log.pid" )
Variables ¶
This section is empty.
Functions ¶
func AppOut ¶
AppOut returns an io.Writer to write app output to, like logs. This falls back to os.Stdout if the ctx, ctx.App or ctx.App.Writer are nil.
func CLIFlagsWithCategory ¶
CLIFlagsWithCategory creates flag definitions for the logging utils. Warning: flags are not safe to reuse due to an upstream urfave default-value mutation bug in GenericFlag. Use cliapp.ProtectFlags(flags) to create a copy before passing it into an App if the app runs more than once.
func FormatHandler ¶
FormatHandler returns the correct slog handler factory for the provided format.
func LevelFromString ¶
LevelFromString returns the appropriate Level from a string name. Useful for parsing command line args and configuration files. It also converts strings to lowercase. If the string is unknown, LevelDebug is returned as a default, together with a non-nil error.
func NewLogHandler ¶
NewLogHandler creates a new configured handler, compatible as LvlSetter for log-level changes during runtime.
func NewLogger ¶
NewLogger creates a new configured logger. The log handler of the logger is a LvlSetter, i.e. the log level can be changed as needed.
func NewLoggingMiddleware ¶
func SetGlobalLogHandler ¶
SetGlobalLogHandler sets the log handles as the handler of the global default logger. The usage of this logger is strongly discouraged, as it does makes it difficult to distinguish different services in the same process, e.g. during tests. Geth and other components may use the global logger however, and it is thus recommended to set the global log handler to catch these logs.
func SetupDefaults ¶
func SetupDefaults()
Types ¶
type CLIConfig ¶
type CLIConfig struct { Level slog.Level Color bool Format FormatType Pid bool }
func DefaultCLIConfig ¶
func DefaultCLIConfig() CLIConfig
DefaultCLIConfig creates a default log configuration. Color defaults to true if terminal is detected.
func ReadCLIConfig ¶
func ReadCLIConfig(ctx *cli.Context) CLIConfig
type DynamicLogHandler ¶
type DynamicLogHandler struct {
// contains filtered or unexported fields
}
DynamicLogHandler allow runtime-configuration of the log handler.
func NewDynamicLogHandler ¶
func NewDynamicLogHandler(lvl slog.Level, h slog.Handler) *DynamicLogHandler
func (*DynamicLogHandler) SetLogLevel ¶
func (d *DynamicLogHandler) SetLogLevel(lvl slog.Level)
type FormatFlagValue ¶
type FormatFlagValue FormatType
FormatFlagValue is a value type for cli.GenericFlag to parse and validate log-formatting-type values
func NewFormatFlagValue ¶
func NewFormatFlagValue(fmtType FormatType) *FormatFlagValue
func (*FormatFlagValue) Clone ¶
func (fv *FormatFlagValue) Clone() any
func (FormatFlagValue) FormatType ¶
func (fv FormatFlagValue) FormatType() FormatType
func (*FormatFlagValue) Set ¶
func (fv *FormatFlagValue) Set(value string) error
func (FormatFlagValue) String ¶
func (fv FormatFlagValue) String() string
type FormatType ¶
type FormatType string
FormatType defines a type of log format. Supported formats: 'text', 'terminal', 'logfmt', 'json'
const ( FormatText FormatType = "text" FormatTerminal FormatType = "terminal" FormatLogFmt FormatType = "logfmt" FormatJSON FormatType = "json" )
func (FormatType) String ¶
func (ft FormatType) String() string
type LevelFlagValue ¶
LevelFlagValue is a value type for cli.GenericFlag to parse and validate log-level values. Log level: trace, debug, info, warn, error, crit. Capitals are accepted too.
func NewLevelFlagValue ¶
func NewLevelFlagValue(lvl slog.Level) *LevelFlagValue
func (*LevelFlagValue) Clone ¶
func (fv *LevelFlagValue) Clone() any
func (LevelFlagValue) Level ¶
func (fv LevelFlagValue) Level() slog.Level
func (*LevelFlagValue) Set ¶
func (fv *LevelFlagValue) Set(value string) error
func (LevelFlagValue) String ¶
func (fv LevelFlagValue) String() string