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 JSONMsHandler(wr io.Writer) slog.Handler
- func JSONMsHandlerWithLevel(wr io.Writer, level slog.Level) slog.Handler
- func LevelFromString(lvlString string) (slog.Level, error)
- func LogfmtMsHandler(wr io.Writer) slog.Handler
- func LogfmtMsHandlerWithLevel(wr io.Writer, level slog.Level) slog.Handler
- 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()
- func SupportedFormatsString() string
- type CLIConfig
- type DynamicLogHandler
- func (d *DynamicLogHandler) Enabled(ctx context.Context, lvl slog.Level) bool
- func (d *DynamicLogHandler) Handle(ctx context.Context, record slog.Record) error
- func (d *DynamicLogHandler) SetLogLevel(lvl slog.Level)
- func (d *DynamicLogHandler) Unwrap() slog.Handler
- 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 JSONMsHandlerWithLevel ¶
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()
func SupportedFormatsString ¶
func SupportedFormatsString() string
SupportedFormatsString returns a comma-delimited string of supported formats,
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 ReadTestCLIConfig ¶
func ReadTestCLIConfig() CLIConfig
ReadTestCLIConfig reads the CLI config from flags and environment variables into a CLIConfig. flag.Parse() must be called before calling this function.
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)
func (*DynamicLogHandler) Unwrap ¶
func (d *DynamicLogHandler) Unwrap() slog.Handler
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" FormatLogFmtMs FormatType = "logfmtms" FormatJSON FormatType = "json" FormatJSONMs FormatType = "jsonms" )
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