From 1dde226d4517f8f53b7d962a80b02cd73671607d Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Sun, 16 Sep 2018 15:53:13 -0700 Subject: [PATCH] BasicSampler prints first message (fix #104) --- log_test.go | 6 +++--- sampler.go | 2 +- sampler_test.go | 9 ++++++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/log_test.go b/log_test.go index e013606..32cf52f 100644 --- a/log_test.go +++ b/log_test.go @@ -398,7 +398,7 @@ func TestSampling(t *testing.T) { log.Log().Int("i", 2).Msg("") log.Log().Int("i", 3).Msg("") log.Log().Int("i", 4).Msg("") - if got, want := decodeIfBinaryToString(out.Bytes()), "{\"i\":2}\n{\"i\":4}\n"; got != want { + if got, want := decodeIfBinaryToString(out.Bytes()), "{\"i\":1}\n{\"i\":3}\n"; got != want { t.Errorf("invalid log output:\ngot: %v\nwant: %v", got, want) } } @@ -527,7 +527,7 @@ type loggableError struct { } func (l loggableError) MarshalZerologObject(e *Event) { - e.Str("message", l.error.Error() + ": loggableError") + e.Str("message", l.error.Error()+": loggableError") } func TestErrorMarshalFunc(t *testing.T) { @@ -549,7 +549,7 @@ func TestErrorMarshalFunc(t *testing.T) { // test overriding the ErrorMarshalFunc originalErrorMarshalFunc := ErrorMarshalFunc - defer func(){ + defer func() { ErrorMarshalFunc = originalErrorMarshalFunc }() diff --git a/sampler.go b/sampler.go index 3f00e1f..2360f0d 100644 --- a/sampler.go +++ b/sampler.go @@ -47,7 +47,7 @@ type BasicSampler struct { // Sample implements the Sampler interface. func (s *BasicSampler) Sample(lvl Level) bool { c := atomic.AddUint32(&s.counter, 1) - return c%s.N == 0 + return c%s.N == s.N-1 } // BurstSampler lets Burst events pass per Period then pass the decision to diff --git a/sampler_test.go b/sampler_test.go index 9010335..e42ad3a 100644 --- a/sampler_test.go +++ b/sampler_test.go @@ -15,7 +15,14 @@ var samplers = []struct { wantMax int }{ { - "BasicSampler", + "BasicSampler_1", + func() Sampler { + return &BasicSampler{N: 1} + }, + 100, 100, 100, + }, + { + "BasicSampler_5", func() Sampler { return &BasicSampler{N: 5} },