log

package
v1.1.4 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2023 License: Apache-2.0 Imports: 25 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 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 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 SetContextFields

func SetContextFields(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 GetContextFields

func GetContextFields(ctx context.Context) Fields

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)
	// 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