Skip to content

Commit

Permalink
👔 up: update log write logic, add more unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
inhere committed Dec 30, 2022
1 parent 214491a commit 4799e4b
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 36 deletions.
7 changes: 0 additions & 7 deletions any.go

This file was deleted.

2 changes: 1 addition & 1 deletion issues_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func TestIssues_31(t *testing.T) {
h2 := handler.MustFileHandler("testdata/info_issue31.log", handler.WithLogLevels(infoLevels))

slog.PushHandler(h1)
slog.PushHandler(h2)
slog.PushHandlers(h2)

// add logs
slog.Info("info message text")
Expand Down
2 changes: 1 addition & 1 deletion logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ func NewWithName(name string) *Logger {
exitHandlers: []func(){},
// options
ReportCaller: true,
CallerSkip: 7,
CallerSkip: 6,
TimeClock: DefaultClockFn,
}

Expand Down
24 changes: 24 additions & 0 deletions logger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package slog_test

import (
"bytes"
"context"
"errors"
"testing"

Expand Down Expand Up @@ -82,6 +83,22 @@ func TestLogger_Log(t *testing.T) {
l.WithTime(timex.NowHourStart()).Panicln("a panic message")
}

func TestLogger_WithContext(t *testing.T) {
var buf bytes.Buffer
h := handler.NewIOWriterHandler(&buf, slog.AllLevels)

l := newLogger()
l.AddHandlers(h)

ctx := context.Background()

r := l.WithCtx(ctx)
r.Info("with context")

str := buf.String()
assert.Contains(t, str, `with context`)
}

func TestLogger_panic(t *testing.T) {
h := newTestHandler()
h.errOnFlush = true
Expand Down Expand Up @@ -160,6 +177,13 @@ func TestLogger_logf_allLevel(t *testing.T) {
printfAllLevelLogs(l, "this a log %s", "message")
}

func newLogger() *slog.Logger {
return slog.NewWithConfig(func(l *slog.Logger) {
l.ReportCaller = true
l.DoNothingOnPanicFatal()
})
}

func printAllLevelLogs(l gsr.Logger, args ...interface{}) {
l.Debug(args...)
l.Info(args...)
Expand Down
2 changes: 1 addition & 1 deletion processor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func TestLogger_AddProcessor(t *testing.T) {
assert.Contains(t, str, `"memoryUsage":`)

l.ResetProcessors()
l.PushProcessor(slog.AddUniqueID("requestId"))
l.SetProcessors([]slog.Processor{slog.AddUniqueID("requestId")})
l.Info("message3")
str = buf.String()
buf.Reset()
Expand Down
8 changes: 6 additions & 2 deletions record.go
Original file line number Diff line number Diff line change
Expand Up @@ -293,15 +293,19 @@ func (r *Record) SetFields(fields M) *Record {
//

func (r *Record) log(level Level, args []any) {
r.Level = level
// will reduce memory allocation once
// r.Message = strutil.Byte2str(formatArgsWithSpaces(args))
r.Message = formatArgsWithSpaces(args)
r.logWrite(level)
// r.logWrite(level)
r.logger.writeRecord(level, r)
}

func (r *Record) logf(level Level, format string, args []any) {
r.Level = level
r.Message = fmt.Sprintf(format, args...)
r.logWrite(level)
// r.logWrite(level)
r.logger.writeRecord(level, r)
}

// Log a message with level
Expand Down
7 changes: 0 additions & 7 deletions rotatefile/any.go

This file was deleted.

3 changes: 1 addition & 2 deletions sugared.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ func (sl *SugaredLogger) Close() error {
_ = sl.Logger.VisitAll(func(handler Handler) error {
// TIP: must exclude self
if _, ok := handler.(*SugaredLogger); !ok {
err := handler.Close()
if err != nil {
if err := handler.Close(); err != nil {
sl.err = err
}
}
Expand Down
29 changes: 14 additions & 15 deletions write.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,20 @@ package slog
// ---------------------------------------------------------------------------
//

func (r *Record) logWrite(level Level) {
// Will reduce memory allocation once
// r.Message = strutil.Byte2str(message)

// var buf *bytes.Buffer
// buf = bufferPool.Get().(*bytes.Buffer)
// defer bufferPool.Put(buf)
// r.Buffer = buf

// TODO release on here ??
// defer r.logger.releaseRecord(r)
r.Level = level
r.logger.writeRecord(level, r)
// r.Buffer = nil
}
// func (r *Record) logWrite(level Level) {
// Will reduce memory allocation once
// r.Message = strutil.Byte2str(message)

// var buf *bytes.Buffer
// buf = bufferPool.Get().(*bytes.Buffer)
// defer bufferPool.Put(buf)
// r.Buffer = buf

// TODO release on here ??
// defer r.logger.releaseRecord(r)
// r.logger.writeRecord(level, r)
// r.Buffer = nil
// }

// Init something for record.
func (r *Record) Init(lowerLevelName bool) {
Expand Down

0 comments on commit 4799e4b

Please sign in to comment.