log

package
v1.1.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 26, 2024 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrDuplicatedName        utils.Error = "duplicated logger name"
	ErrUnknownOutput         utils.Error = "unknown logger output"
	ErrDefaultLoggerNotFound utils.Error = "default logger not found"
)

Variables

This section is empty.

Functions

func AddCtxFields added in v0.0.64

func AddCtxFields(ctx context.Context, fields Fields) context.Context

func AppName

func AppName(name string) utils.OptionFunc[useOption]

func Construct

func Construct(ctx context.Context, confs map[string]*Conf, opts ...utils.OptionExtender) func()

func Debug

func Debug(ctx context.Context, format string, args ...any)

func DelCtxFields added in v0.0.64

func DelCtxFields(ctx context.Context, keys ...string) context.Context

func Error

func Error(ctx context.Context, format string, args ...any)

func Fatal

func Fatal(ctx context.Context, format string, args ...any)

func Info

func Info(ctx context.Context, format string, args ...any)

func Panic

func Panic(ctx context.Context, format string, args ...any)

func SetCtxFields added in v0.0.64

func SetCtxFields(ctx context.Context, fields Fields) context.Context

func SetCtxLogger

func SetCtxLogger(ctx context.Context, val Loggable) context.Context

func TimeElapsed

func TimeElapsed(ctx context.Context, logger Loggable, fn func(), format string, args ...any)

func Warn

func Warn(ctx context.Context, format string, args ...any)

Types

type Conf

type Conf struct {
	LogLevel            string `yaml:"log_level" json:"log_level" toml:"log_level" default:"info"`
	StacktraceLevel     string `yaml:"stacktrace_level" json:"stacktrace_level" toml:"stacktrace_level" default:"panic"`
	EnableConsoleOutput bool   `yaml:"enable_console_output" json:"enable_console_output" toml:"enable_console_output"`
	ConsoleOutputOption struct {
		Layout   string `yaml:"layout" json:"layout" toml:"layout" default:"console"`
		Colorful bool   `yaml:"colorful" json:"colorful" toml:"colorful" default:"false"`
	} `yaml:"console_output_option" json:"console_output_option" toml:"console_output_option"`
	EnableFileOutput bool `yaml:"enable_file_output" json:"enable_file_output" toml:"enable_file_output"`
	FileOutputOption struct {
		Layout         string `yaml:"layout" json:"layout" toml:"layout" default:"json"`
		Path           string `yaml:"path" json:"path" toml:"path"` // Log save path
		Name           string `yaml:"name" json:"name" toml:"name"` // Name of the saved log, defaults to random generation
		RotationMaxAge string `yaml:"rotation_max_age" json:"rotation_max_age" toml:"rotation_max_age" default:"720h"`
		RotationCount  int    `yaml:"rotation_count" json:"rotation_count" toml:"rotation_count"`               // Maximum number of files to keep
		RotationSize   string `yaml:"rotation_size" json:"rotation_size" toml:"rotation_size" default:"100mib"` // File rotation size
		Compress       bool   `yaml:"compress" json:"compress" toml:"compress" default:"false"`
	} `yaml:"file_output_option" json:"file_output_option" toml:"file_output_option"`
	SkipCallers     []string `yaml:"skip_callers" json:"skip_callers" toml:"skip_callers"`
	ShorterFilepath bool     `yaml:"shorter_filepath" json:"shorter_filepath" toml:"shorter_filepath"`
}

Conf log configure nolint: revive // struct tag too long issue

type Fields

type Fields map[string]any

func GetCtxFields added in v0.0.64

func GetCtxFields(ctx context.Context) Fields

type Level added in v1.1.13

type Level int8

A Level is a logging priority. Higher levels are more important.

const (
	// DebugLevel logs are typically voluminous, and are usually disabled in
	// production.
	DebugLevel Level = iota - 1
	// InfoLevel is the default logging priority.
	InfoLevel
	// WarnLevel logs are more important than Info, but don't need individual
	// human review.
	WarnLevel
	// ErrorLevel logs are high-priority. If an application is running smoothly,
	// it shouldn't generate any error-level logs.
	ErrorLevel

	// PanicLevel logs a message, then panics.
	PanicLevel
	// FatalLevel logs a message, then calls os.Exit(1).
	FatalLevel

	// InvalidLevel is an invalid value for Level.
	//
	// Core implementations may panic if they see messages of this level.
	InvalidLevel = _maxLevel + 1
)

type Loggable

type Loggable interface {
	Debug(ctx context.Context, format string, args ...any)
	Info(ctx context.Context, format string, args ...any)
	Warn(ctx context.Context, format string, args ...any)
	Error(ctx context.Context, format string, args ...any)
	Panic(ctx context.Context, format string, args ...any)
	Fatal(ctx context.Context, format string, args ...any)
	Level(ctx context.Context) Level
	// contains filtered or unexported methods
}

func GetCtxLogger

func GetCtxLogger(ctx context.Context, args ...Loggable) (logger Loggable)

func Use

func Use(name string, opts ...utils.OptionExtender) Loggable

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL