plog

package
v0.0.0-...-0350bc7 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2024 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultFilter

func DefaultFilter(c context.Context, err error, req, resp any) slog.Level

func Error

func Error(err error) slog.Attr

func GetCallerLocation

func GetCallerLocation(pc uintptr) string

func GetLocalIp

func GetLocalIp() string

func Ignore

func Ignore(e *evojson.EncodeState, v reflect.Value, opts evojson.EncOpts)

func Log

func Log(c context.Context, lvl slog.Level, skip int, event string, args ...any)

Log for increase performance, we use skip as argument.

func Marshal

func Marshal(v any, encoder ...*Encoder) ([]byte, error)

func Md5

func NamedError

func NamedError(k string, err error) slog.Attr

func NewTraceId

func NewTraceId() string

func RequestLog

func RequestLog(c context.Context, err error, req, resp any, extra ...any)

func SetDefaultRequestLogger

func SetDefaultRequestLogger(l *RequestLogger)

func WithLogContext

func WithLogContext(c context.Context, lcc *LogContextConfig) context.Context

Types

type Encoder

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

func DefaultEncoder

func DefaultEncoder() *Encoder

func NewEncoder

func NewEncoder() *Encoder

func (*Encoder) ClearAll

func (enc *Encoder) ClearAll()

func (*Encoder) GetEncoder

func (en *Encoder) GetEncoder(configer *evojson.ExtConfiger, f *evojson.Field) evojson.EncoderFunc

func (*Encoder) Set

func (enc *Encoder) Set(key string, f evojson.EncoderFunc)

type JsonHandler

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

func NewJsonHandler

func NewJsonHandler(opts *JsonHandlerOpts) *JsonHandler

func (*JsonHandler) Enabled

func (h *JsonHandler) Enabled(c context.Context, lvl slog.Level) bool

func (*JsonHandler) Handle

func (h *JsonHandler) Handle(c context.Context, r slog.Record) error

func (*JsonHandler) SetLevel

func (h *JsonHandler) SetLevel(lvl slog.Level)

func (*JsonHandler) WithAttrs

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

func (*JsonHandler) WithGroup

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

type JsonHandlerOpts

type JsonHandlerOpts struct {
	AddSource   bool
	Level       *slog.LevelVar
	ReplaceAttr func(groups []string, a slog.Attr) slog.Attr
	LogPath     string
	Writer      io.Writer
	Encoder     *Encoder
}

func NewJsonHandlerOpts

func NewJsonHandlerOpts() *JsonHandlerOpts

func (*JsonHandlerOpts) SetAddSource

func (opts *JsonHandlerOpts) SetAddSource(addSource bool) *JsonHandlerOpts

func (*JsonHandlerOpts) SetWriter

func (opts *JsonHandlerOpts) SetWriter(w io.Writer) *JsonHandlerOpts

type LogContext

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

func GetLogContext

func GetLogContext(c context.Context) *LogContext

func GetLogContextIfExist

func GetLogContextIfExist(c context.Context) (*LogContext, bool)

func (*LogContext) AddEvent

func (lc *LogContext) AddEvent(event string) *LogContext

func (*LogContext) GetEvents

func (lc *LogContext) GetEvents() string

func (*LogContext) GetMethod

func (lc *LogContext) GetMethod() string

func (*LogContext) GetStartTime

func (lc *LogContext) GetStartTime() time.Time

func (*LogContext) GetTraceId

func (lc *LogContext) GetTraceId() string

func (*LogContext) SetMethod

func (lc *LogContext) SetMethod(method string) *LogContext

type LogContextConfig

type LogContextConfig struct {
	Method  string
	TraceId string
}

type MonitorLevel

type MonitorLevel string
const (
	MonitorLevelErr  MonitorLevel = "err"
	MonitorLevelWar  MonitorLevel = "warn"
	MonitorLevelInfo MonitorLevel = "info"
)

func GetMonitorLevel

func GetMonitorLevel(code codes.Code) MonitorLevel

func (MonitorLevel) String

func (lvl MonitorLevel) String() string

type Reporter

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

func DefaultReporter

func DefaultReporter() *Reporter

func NewReporter

func NewReporter() *Reporter

func (*Reporter) Gather

func (r *Reporter) Gather() ([]*dto.MetricFamily, error)

func (*Reporter) ReportClientDuration

func (r *Reporter) ReportClientDuration(c context.Context, svr, method string, duration time.Duration)

func (*Reporter) ReportClientEventWithLevel

func (r *Reporter) ReportClientEventWithLevel(c context.Context,
	lvl MonitorLevel, svr, event string, extra ...string)

func (*Reporter) ReportClientRequest

func (r *Reporter) ReportClientRequest(c context.Context, code codes.Code, svr, event string, extra ...string)

func (*Reporter) ReportDuration

func (r *Reporter) ReportDuration(c context.Context, duration time.Duration)

func (*Reporter) ReportErrEvent

func (r *Reporter) ReportErrEvent(c context.Context, event string, extra ...string)

func (*Reporter) ReportEvent

func (r *Reporter) ReportEvent(c context.Context, event string, extra ...string)

func (*Reporter) ReportEventWithLevel

func (r *Reporter) ReportEventWithLevel(
	c context.Context, lvl MonitorLevel, event string, extra ...string)

func (*Reporter) ReportRequest

func (r *Reporter) ReportRequest(c context.Context, code codes.Code, event string, extra ...string)

type ReporterConfig

type ReporterConfig struct {
	ReportSvr      string
	ReportInst     string
	Component      string
	GlobalLabels   prometheus.Labels
	ExtraLabels    []string
	ExtraExtractor func(c context.Context) []string
}

type RequestLogInfo

type RequestLogInfo struct {
	Err  error
	Req  any
	Resp any
}

type RequestLogger

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

func DefaultRequestLogger

func DefaultRequestLogger() *RequestLogger

func NewRequestLogger

func NewRequestLogger(
	filter func(c context.Context, err error, req, resp any) slog.Level,
	logger *slog.Logger) *RequestLogger

func (*RequestLogger) Enabled

func (rl *RequestLogger) Enabled(c context.Context, lvl slog.Level) bool

func (*RequestLogger) Log

func (rl *RequestLogger) Log(c context.Context, err error, req, resp any, extra ...any)

func (*RequestLogger) LogWithSkip

func (rl *RequestLogger) LogWithSkip(c context.Context, skip int, err error, req, resp any, extra ...any)

Jump to

Keyboard shortcuts

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