Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions log/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ type Event struct {

name string
timestamp time.Time
level slog.Level
level Level
duration time.Duration
attrs map[string]any
steps []stepRecord
Expand All @@ -26,20 +26,20 @@ func NewEvent(name string) *Event {
return &Event{
name: name,
timestamp: time.Now(),
level: slog.LevelDebug,
level: LevelDebug,
attrs: map[string]any{},
}
}

// SetLevel sets event level if it is higher than the current one.
func (e *Event) SetLevel(level slog.Level) {
func (e *Event) SetLevel(level Level) {
e.mu.Lock()
defer e.mu.Unlock()

e.setLevelNoLock(level)
}

func (e *Event) setLevelNoLock(level slog.Level) {
func (e *Event) setLevelNoLock(level Level) {
if level > e.level {
e.level = level
}
Expand All @@ -54,7 +54,7 @@ func (e *Event) AddAttrs(attrs map[string]any) {
}

// AddStep appends an event step and potentially escalates level.
func (e *Event) AddStep(level slog.Level, name string) {
func (e *Event) AddStep(level Level, name string) {
e.mu.Lock()
defer e.mu.Unlock()

Expand All @@ -76,7 +76,7 @@ func (e *Event) AddError(err error) {
e.mu.Lock()
defer e.mu.Unlock()

e.setLevelNoLock(slog.LevelError)
e.setLevelNoLock(LevelError)

e.errors = append(e.errors, errorRecord{
Timestamp: time.Now(),
Expand Down Expand Up @@ -109,7 +109,7 @@ func (e *Event) Duration() time.Duration {
}

// Level returns the event level.
func (e *Event) Level() slog.Level {
func (e *Event) Level() Level {
e.mu.Lock()
defer e.mu.Unlock()

Expand Down Expand Up @@ -207,7 +207,7 @@ func (e *Event) toAttrs(additionalReservedAttrKeys []string) []slog.Attr {

type stepRecord struct {
Timestamp time.Time
Level slog.Level
Level Level
Name string
}

Expand Down
15 changes: 15 additions & 0 deletions log/levels.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package log

import "log/slog"

// Level is an alias for slog.Level representing log severity.
type Level = slog.Level

// Log level constants.
const (
LevelDebug Level = slog.LevelDebug
LevelInfo Level = slog.LevelInfo
LevelWarn Level = slog.LevelWarn
LevelError Level = slog.LevelError
LevelInfoForced Level = 10
)
4 changes: 2 additions & 2 deletions log/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ type logger interface {
}

// Logger is the default logger instance used by package-level logging functions.
var Logger logger = New(os.Stdout, "text", slog.LevelInfo, nil) //nolint:gochecknoglobals
var Logger logger = New(os.Stdout, "text", LevelInfo, nil) //nolint:gochecknoglobals

// SetDefault sets the default logger used by the package-level logging functions.
func SetDefault(l logger) {
Expand Down Expand Up @@ -82,7 +82,7 @@ func (h *contextHandler) Handle(ctx context.Context, r slog.Record) error {
}

// New creates a new slog.Logger with the specified type (json/text), log level, and additional context keys to include.
func New(w io.Writer, loggerType string, level slog.Level, contextKeys map[string]any) *slog.Logger {
func New(w io.Writer, loggerType string, level Level, contextKeys map[string]any) *slog.Logger {
if loggerType == "json" {
return slog.New(&contextHandler{slog.NewJSONHandler(w, &slog.HandlerOptions{Level: level}), contextKeys})
}
Expand Down
14 changes: 7 additions & 7 deletions log/wideevent_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func NewWideEventLogger(w io.Writer, s Sampler, loggerType string, contextKeys m
}

opts := &slog.HandlerOptions{
Level: slog.LevelDebug,
Level: LevelDebug,
ReplaceAttr: func(_ []string, a slog.Attr) slog.Attr {
if a.Key == slog.TimeKey {
return slog.Attr{}
Expand Down Expand Up @@ -77,22 +77,22 @@ func (l *WideEventLogger) Error(msg string, args ...any) {

// DebugContext logs a message at Debug level with context.
func (l *WideEventLogger) DebugContext(ctx context.Context, msg string, args ...any) {
l.writeSimpleLog(ctx, slog.LevelDebug, msg, args...)
l.writeSimpleLog(ctx, LevelDebug, msg, args...)
}

// InfoContext logs a message at Info level with context.
func (l *WideEventLogger) InfoContext(ctx context.Context, msg string, args ...any) {
l.writeSimpleLog(ctx, slog.LevelInfo, msg, args...)
l.writeSimpleLog(ctx, LevelInfo, msg, args...)
}

// WarnContext logs a message at Warn level with context.
func (l *WideEventLogger) WarnContext(ctx context.Context, msg string, args ...any) {
l.writeSimpleLog(ctx, slog.LevelWarn, msg, args...)
l.writeSimpleLog(ctx, LevelWarn, msg, args...)
}

// ErrorContext logs a message at Error level with context.
func (l *WideEventLogger) ErrorContext(ctx context.Context, msg string, args ...any) {
l.writeSimpleLog(ctx, slog.LevelError, msg, args...)
l.writeSimpleLog(ctx, LevelError, msg, args...)
}

// WriteEvent finalizes event duration and conditionally writes it.
Expand All @@ -104,7 +104,7 @@ func (l *WideEventLogger) WriteEvent(ctx context.Context, e *Event) {
}
}

func (l *WideEventLogger) writeSimpleLog(ctx context.Context, level slog.Level, msg string, args ...any) {
func (l *WideEventLogger) writeSimpleLog(ctx context.Context, level Level, msg string, args ...any) {
event := NewEvent(simpleLogEventName)
event.SetLevel(level)
event.AddAttrs(simpleLogEventAttrs(args...))
Expand All @@ -118,7 +118,7 @@ func (l *WideEventLogger) writeSimpleLog(ctx context.Context, level slog.Level,
func simpleLogEventAttrs(args ...any) map[string]any {
attrs := map[string]any{}

record := slog.NewRecord(time.Time{}, slog.LevelInfo, "", 0)
record := slog.NewRecord(time.Time{}, LevelInfo, "", 0)
record.Add(args...)
record.Attrs(func(attr slog.Attr) bool {
attrs[attr.Key] = attr.Value
Expand Down
Loading