Skip to content

Commit

Permalink
fix WithXXX or SetXXX
Browse files Browse the repository at this point in the history
  • Loading branch information
hedzr committed Oct 20, 2024
1 parent 5b0809c commit 08b804b
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 54 deletions.
2 changes: 1 addition & 1 deletion slog/adapters.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ func (s *handler4LogSlog) WithGroup(name string) logslog.Handler {
// withFields returns a cloned Handler with the given fields.
func (s *handler4LogSlog) withFields(fields ...Attr) *handler4LogSlog {
cloned := &handler4LogSlog{
New().WithAttrs(fields...),
New().SetAttrs(fields...),
}
return cloned
}
Expand Down
72 changes: 38 additions & 34 deletions slog/i_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,11 @@ func (s *mylogger) Infof(msg string, args ...any) {

var data []byte
data = fmt.Appendf(data, msg, args...)
s.Logger.WithSkip(s.mySkip).Info(string(data))
s.Logger.SetSkip(s.mySkip)
s.Logger.Info(string(data))
} else {
s.Logger.WithSkip(s.mySkip).Info(msg)
s.Logger.SetSkip(s.mySkip)
s.Info(msg)
}
}
}
Expand Down Expand Up @@ -174,7 +176,7 @@ func TestSlogBasic5(t *testing.T) {
}

func TestSlogJSON(t *testing.T) {
logger := slog.New().WithJSONMode().WithLevel(slog.DebugLevel)
logger := slog.New().SetJSONMode().SetLevel(slog.DebugLevel)

logger.Debug("Debug message") //
logger.Info("Info message") //
Expand Down Expand Up @@ -208,7 +210,7 @@ func TestSlogJSON(t *testing.T) {
}

func TestSlogLogfmt(t *testing.T) {
logger := slog.New().WithLevel(slog.TraceLevel).WithColorMode(false)
logger := slog.New().SetLevel(slog.TraceLevel).SetColorMode(false)

logger.Debug("Debug message")
logger.Info("Info message")
Expand Down Expand Up @@ -327,7 +329,7 @@ func testSlogAndHTTPServer(t testing.TB) { //nolint:unused

idleConnsClosed := make(chan struct{})

logger := slog.New().WithJSONMode()
logger := slog.New().SetJSONMode()
srv.ErrorLog = slog.NewLogLogger(logger, slog.ErrorLevel)

go func() {
Expand Down Expand Up @@ -365,9 +367,9 @@ func testSlogAndHTTPServer(t testing.TB) { //nolint:unused
func TestSlogStrongTypedAttrs(t *testing.T) {
// slog.SetLevel(slog.InfoLevel)
for _, logger := range []slog.Logger{
slog.New(),
slog.New().WithColorMode(false),
slog.New().WithJSONMode(),
slog.New(), // color mode
slog.New().WithColorMode(false), // logfmt
slog.New().WithJSONMode(), // json mode
} {
logger.Println()
logger.Info(
Expand Down Expand Up @@ -409,9 +411,9 @@ func TestSlogStrongTypedAttrs(t *testing.T) {

func TestSlogGrouping(t *testing.T) {
for _, logger := range []slog.Logger{
slog.New(),
slog.New().WithColorMode(false),
slog.New().WithJSONMode(),
slog.New(), // color mode
slog.New().WithColorMode(false), // logfmt
slog.New().WithJSONMode(), // json mode
} {
logger.LogAttrs(
context.Background(),
Expand All @@ -435,13 +437,13 @@ func TestSlogGrouping(t *testing.T) {

func TestSlogChildLogger(t *testing.T) {
for _, logger := range []slog.Logger{
slog.New(),
slog.New().WithColorMode(false),
slog.New().WithJSONMode(),
slog.New(), // color mode
slog.New().WithColorMode(false), // logfmt
slog.New().WithJSONMode(), // json mode
} {
buildInfo, _ := debug.ReadBuildInfo()

child := logger.New("child").WithAttrs(
child := logger.New("child").SetAttrs(
slog.Group("program_info",
slog.Int("pid", os.Getpid()),
slog.String("go_version", buildInfo.GoVersion),
Expand Down Expand Up @@ -482,7 +484,7 @@ func TestSlogNewWithAttrs(t *testing.T) {
}

func TestSlogWithContext(t *testing.T) {
logger := slog.New().WithAttrs(slog.String("app-version", "v0.0.1-beta"))
logger := slog.New().SetAttrs(slog.String("app-version", "v0.0.1-beta"))
ctx := context.WithValue(context.Background(), "ctx", "oh,oh,oh") //nolint:staticcheck
logger.SetContextKeys("ctx").InfoContext(ctx, "info msg",
"attr1", 111333,
Expand All @@ -495,7 +497,7 @@ func TestSlogWithContext(t *testing.T) {
}

func TestSlogPassLoggerWithContext(t *testing.T) {
logger := slog.New().WithAttrs(slog.String("app-version", "v0.0.1-beta"))
logger := slog.New().SetAttrs(slog.String("app-version", "v0.0.1-beta"))
ctx := context.WithValue(context.Background(), LoggerKey, logger) //nolint:staticcheck // 👈 context containing logger
sendUsageStatus(ctx)
}
Expand All @@ -516,23 +518,25 @@ func sendUsageStatus(ctx context.Context) {
func TestSlogSetLevel(t *testing.T) {
slog.SetLevel(slog.InfoLevel)
for _, parent := range []slog.Logger{
slog.New(),
slog.New().WithColorMode(false),
slog.New().WithJSONMode(),
slog.New(), // color mode
slog.New().WithColorMode(false), // logfmt
slog.New().WithJSONMode(), // json mode
} {
// you can change the level anytime like this
// parent.WithLevel(slog.TraceLevel)
// parent.SetLevel(slog.TraceLevel)

parent.Debug("Debug message", "lvl", parent.Level()) // this line is invisible in logging outputs
parent.Warn("Warn message --------", "lvl", parent.Level()) // this line is invisible in logging outputs

// or, create a child logger with different level
logger := parent.New("child").WithLevel(slog.DebugLevel)
logger := parent.New("child").SetLevel(slog.DebugLevel)

logger.Trace("Trace message") // invisible
logger.Debug("Debug message")
logger.Info("Info message")
logger.Warn("Warning message")
logger.Error("Error message")
logger.Trace("Trace message/c") // invisible
logger.Debug("Debug message/c")
logger.Info("Info message/c")
logger.Warn("Warning message/c")
logger.Error("Error message/c")

logger.Close()
}
}

Expand Down Expand Up @@ -608,8 +612,8 @@ func TestSlogAdapter(t *testing.T) {
)
defer l.Close()

sub1 := l.New("sub1").With("logger", "sub1")
sub2 := l.New("sub2").With("logger", "sub2").WithLevel(slog.InfoLevel)
sub1 := l.New("sub1").Set("logger", "sub1")
sub2 := l.New("sub2").Set("logger", "sub2").SetLevel(slog.InfoLevel)

// create a log/slog logger HERE
logger := logslog.New(slog.NewSlogHandler(l, &slog.HandlerOptions{
Expand Down Expand Up @@ -646,8 +650,8 @@ func TestSlogUsedForLogSlog(t *testing.T) {
)
defer l.Close()

sub1 := l.New("sub1").With("logger", "sub1")
sub2 := l.New("sub2").With("logger", "sub2").WithLevel(slog.InfoLevel)
sub1 := l.New("sub1").Set("logger", "sub1")
sub2 := l.New("sub2").Set("logger", "sub2").SetLevel(slog.InfoLevel)

// create a log/slog logger HERE
logger := logslog.New(slog.NewSlogHandler(l, nil))
Expand Down Expand Up @@ -690,14 +694,14 @@ func TestDisabledLog(t *testing.T) {
slog.SetLevel(slog.WarnLevel)

// And, create a detached logger with WarnLevel
logger := slog.New().With("attr", "parent").WithLevel(slog.WarnLevel)
logger := slog.New().Set("attr", "parent").SetLevel(slog.WarnLevel)

// Now the Info request should not print out anything
logger.Info("info msg", "root-level", slog.GetLevel())
}

func TestSlogAttrsR(t *testing.T) {
logger := slog.New("parent-logger").With("attr", "parent").WithLevel(slog.InfoLevel)
logger := slog.New("parent-logger").Set("attr", "parent").SetLevel(slog.InfoLevel)
sl := logger.New("child-logger")

logger.Info("info", "attr1", 1)
Expand Down
40 changes: 21 additions & 19 deletions slog/new_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ func TestNewChildLogger(t *testing.T) {
}

func TestLogOneTwoThree(t *testing.T) {
l := New().WithLevel(InfoLevel)
l := New().SetLevel(InfoLevel)
l.Info("info msg", "Aa", 1, "Bbb", "a string", "Cc", 3.732, "D", 2.71828+5.3571i)
}

Expand All @@ -109,9 +109,9 @@ func TestLogAllVerbs(t *testing.T) {
name string
logger Logger
}{
{"json", New(" JSON ").WithLevel(AlwaysLevel).WithJSONMode(true)}, // json format
{"logfmt", New("LOGFMT").WithLevel(AlwaysLevel).WithColorMode(false)}, // logfmt
{"colorful", New("COLOUR").WithLevel(AlwaysLevel).WithColorMode()}, // colorful mode
{"json", New(" JSON ").SetLevel(AlwaysLevel).SetJSONMode(true)}, // json format
{"logfmt", New("LOGFMT").SetLevel(AlwaysLevel).SetColorMode(false)}, // logfmt
{"colorful", New("COLOUR").SetLevel(AlwaysLevel).SetColorMode()}, // colorful mode
} {
t.Log("")
t.Log("")
Expand Down Expand Up @@ -145,7 +145,7 @@ func TestLogAllVerbs(t *testing.T) {
l.Info("DEEP info msg", attrsDeep...)
l.Debug("DEEP debug msg", attrsDeep...)

// l2 := New().WithLevel(AlwaysLevel).WithColorMode(false)
// l2 := New().SetLevel(AlwaysLevel).SetColorMode(false)
// l2.Println()
// l2.Warn("DEEP warn msg", attrsDeep...)
// // time="09:59:47.464235+08:00" level="warning" msg="warn msg" Attr1=3.13 Aa=1 Bbb="a string" Cc=3.732 D=(2.71828+5.3571i) Time1="2023-10-22T09:59:47.46414+08:00" Dur1="2.069589s" Bool=true BoolFalse=false
Expand All @@ -160,7 +160,7 @@ func TestLogDefault(t *testing.T) {
defer SaveFlagsAndMod(LnoInterrupt | LattrsR)()
defer SaveLevelAndSet(TraceLevel)()

l := New().WithLevel(AlwaysLevel)
l := New().SetLevel(AlwaysLevel)

l.Print("print msg", "Aa", 1, "Bbb", "a string", "Cc", 3.732, "D", 2.71828+5.3571i)
l.Verbose("verbose msg", "Aa", 1, "Bbb", "a string", "Cc", 3.732, "D", 2.71828+5.3571i)
Expand All @@ -187,12 +187,12 @@ func TestLogDefault(t *testing.T) {
l.Debug("debug msg", attrs...)
// 2023-10-22T09:59:47.464221+08:00 [DBG] debug msg Attr1=3.13 group1.Aa=1 group1.Bbb="a string" group1.Cc=3.732 group1.D=(2.71828+5.3571i) Time1="2023-10-22T09:59:47.46414+08:00" Dur1="2.069589s" Bool=true BoolFalse=false

l2 := New().WithLevel(AlwaysLevel).WithColorMode(false)
l2 := New().SetLevel(AlwaysLevel).SetColorMode(false)
l2.Println()
l2.Warn("warn msg", attrs...)
// time="09:59:47.464235+08:00" level="warning" msg="warn msg" Attr1=3.13 Aa=1 Bbb="a string" Cc=3.732 D=(2.71828+5.3571i) Time1="2023-10-22T09:59:47.46414+08:00" Dur1="2.069589s" Bool=true BoolFalse=false

l3 := New().WithLevel(AlwaysLevel).WithJSONMode()
l3 := New().SetLevel(AlwaysLevel).SetJSONMode()
l3.Println()
l3.Warn("warn msg", attrs...)
// {"time":"09:59:47.464267+08:00","level":"warning","msg":"warn msg","Attr1":3.13,"group1":{"Aa":1,"Bbb":"a string","Cc":3.732,"D":"(2.71828+5.3571i)"},"Time1":"2023-10-22T09:59:47.46414+08:00","Dur1":"2.069589s","Bool":true,"BoolFalse":false}
Expand Down Expand Up @@ -226,13 +226,13 @@ func (s *decorated) Write(p []byte) (n int, err error) {

func TestDisabledWithoutFields(t *testing.T) {
defer SaveLevelAndSet(WarnLevel)()
logger := New().WithLevel(WarnLevel).WithColorMode(false)
logger := New().SetLevel(WarnLevel).SetColorMode(false)
logger.Info(getMessage(0))
logger.Debug(getMessage(0))
}

func TestWithoutFields(t *testing.T) {
logger := New().WithLevel(DebugLevel).WithColorMode(false)
logger := New().SetLevel(DebugLevel).SetColorMode(false)
logger.Info(getMessage(0))
logger.Debug(getMessage(0))
}
Expand All @@ -241,7 +241,8 @@ func TestWithWriter(t *testing.T) {
defer SaveFlagsAndMod(LnoInterrupt | LattrsR)()
defer SaveLevelAndSet(TraceLevel)()

l := New(WithJSONMode(false, false),
l := New(
WithJSONMode(false, false),
WithColorMode(false),
WithUTCMode(false, true, false),
WithTimeFormat("", "", time.RFC3339Nano),
Expand Down Expand Up @@ -271,6 +272,7 @@ func TestWithWriter(t *testing.T) {

SetSkip(0)

l.SetValueStringer(nil)
l.WithValueStringer(nil)
l.Println("")

Expand Down Expand Up @@ -328,14 +330,14 @@ func BenchmarkWithoutFields(b *testing.B) {
}

func newLoggTextMode(fields ...Attr) Logger {
return New().WithLevel(DebugLevel).WithAttrs(fields...).
// WithLevel(slogg.OffLevel)
// WithWriter(io.Discard).
WithColorMode(false)
return New().SetLevel(DebugLevel).SetAttrs(fields...).
// SetLevel(slogg.OffLevel)
// SetWriter(io.Discard).
SetColorMode(false)
}

func TestAccumulatedContext(t *testing.T) {
logger := New().WithAttrs(fakeLoggFields()...).WithColorMode(false)
logger := New().SetAttrs(fakeLoggFields()...).SetColorMode(false)
logger.Info(getMessage(0))
logger.Debug(getMessage(0))
}
Expand All @@ -345,9 +347,9 @@ func TestAccumulatedContextAll(t *testing.T) {
name string
logger Logger
}{
{"json", New(" json ").WithAttrs(fakeLoggFields()...).WithJSONMode(true)}, // json format
{"logfmt", New("logfmt").WithAttrs(fakeLoggFields()...).WithColorMode(false)}, // logfmt
{"colorful", New("color ").WithAttrs(fakeLoggFields()...).WithColorMode()}, // colorful mode
{"json", New(" json ").SetAttrs(fakeLoggFields()...).SetJSONMode(true)}, // json format
{"logfmt", New("logfmt").SetAttrs(fakeLoggFields()...).SetColorMode(false)}, // logfmt
{"colorful", New("color ").SetAttrs(fakeLoggFields()...).SetColorMode()}, // colorful mode
} {
cas.logger.Info(getMessage(0))
cas.logger.Println()
Expand Down

0 comments on commit 08b804b

Please sign in to comment.