logs

package module
v0.0.0-...-2771b1b Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2024 License: MIT Imports: 8 Imported by: 0

README

logs

Based on slog packaging, supports context tracking

Example

var (
    level   slog.LevelVar // info
    syncer  = &lumberjack.Logger{Filename: "logger.log", LocalTime: true, MaxAge: 1}
)

func main() {
	
    defer syncer.Close()
    
    level.Set(logs.ParseLevel("debug"))

    slog.SetDefault(slog.New(WrapHandler(slog.NewJSONHandler(
        io.MultiWriter(os.Stdout, NewWriter(syncer, 10<<10)),
        &slog.HandlerOptions{Level: &level}),
    )))

    slog.DebugContext(ctx, "DebugContext")
    slog.InfoContext(ctx, "InfoContext")
    slog.ErrorContext(ctx, "ErrorContext")
    son := slog.With(slog.String("name", "son"))
    son.ErrorContext(ctx, "son.ErrorContext")
}

{"time":"2024-02-07T15:00:45.5510225+08:00","level":"DEBUG","msg":"DebugContext","trace":"b012ab24f1f864214f93435c150915ab","span":"9ed99b05197f2389"}
{"time":"2024-02-07T15:00:45.5757939+08:00","level":"INFO","msg":"InfoContext","trace":"b012ab24f1f864214f93435c150915ab","span":"9ed99b05197f2389"}                   
{"time":"2024-02-07T15:00:45.5757939+08:00","level":"ERROR","msg":"ErrorContext","trace":"b012ab24f1f864214f93435c150915ab","span":"9ed99b05197f2389"}                 
{"time":"2024-02-07T15:00:45.5763476+08:00","level":"ERROR","msg":"son.ErrorContext","name":"son","trace":"b012ab24f1f864214f93435c150915ab","span":"9ed99b05197f2389"

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParseLevel

func ParseLevel(level string) slog.Level

ParseLevel parses a level string.

Types

type Handler

type Handler struct {
	slog.Handler
}

func WrapHandler

func WrapHandler(handler slog.Handler) *Handler

WrapHandler wraps a slog.Handler.

func (*Handler) Enabled

func (h *Handler) Enabled(ctx context.Context, level slog.Level) bool

Enabled implements slog.Handler.

func (*Handler) Handle

func (h *Handler) Handle(ctx context.Context, r slog.Record) error

Handle implements slog.Handler.

func (*Handler) WithAttrs

func (h *Handler) WithAttrs(attrs []slog.Attr) slog.Handler

WithAttrs implements slog.Handler.

func (*Handler) WithGroup

func (h *Handler) WithGroup(name string) slog.Handler

WithGroup implements slog.Handler.

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

func NewWriter

func NewWriter(w io.WriteCloser, bufferSize int) *Writer

func (*Writer) Close

func (w *Writer) Close() error

func (*Writer) Write

func (w *Writer) Write(p []byte) (n int, err error)

Jump to

Keyboard shortcuts

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