Skip to content

Commit

Permalink
feat: allow get and put extra keys (#37)
Browse files Browse the repository at this point in the history
Signed-off-by: rogerogers <[email protected]>
  • Loading branch information
rogerogers authored Aug 30, 2023
1 parent 00fc458 commit 83308f0
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 6 deletions.
4 changes: 3 additions & 1 deletion _typos.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@ trUe = "trUe"
OPTIO = "OPTIO"
referer = "referer"
TagReferer = "TagReferer"
Referer = "Referer"
Referer = "Referer"
O_WRONLY = "O_WRONLY"
WRONLY = "WRONLY"
14 changes: 14 additions & 0 deletions zap/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,20 @@ func NewLogger(opts ...Option) *Logger {
}
}

// GetExtraKeys get extraKeys from logger config
func (l *Logger) GetExtraKeys() []ExtraKey {
return l.config.extraKeys
}

// PutExtraKeys add extraKeys after init
func (l *Logger) PutExtraKeys(keys ...ExtraKey) {
for _, k := range keys {
if !InArray(k, l.config.extraKeys) {
l.config.extraKeys = append(l.config.extraKeys, k)
}
}
}

func (l *Logger) Log(level hlog.Level, kvs ...interface{}) {
sugar := l.l.Sugar()
switch level {
Expand Down
10 changes: 10 additions & 0 deletions zap/logger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,16 @@ func TestWithExtraKeys(t *testing.T) {
assert.Equal(t, value, "123")
}

func TestPutExtraKeys(t *testing.T) {
logger := NewLogger(WithExtraKeys([]ExtraKey{"abc"}))

assert.Contains(t, logger.GetExtraKeys(), ExtraKey("abc"))
assert.NotContains(t, logger.GetExtraKeys(), ExtraKey("def"))

logger.PutExtraKeys("def")
assert.Contains(t, logger.GetExtraKeys(), ExtraKey("def"))
}

func BenchmarkNormal(b *testing.B) {
buf := new(bytes.Buffer)
log := NewLogger()
Expand Down
2 changes: 1 addition & 1 deletion zap/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ func WithZapOptions(opts ...zap.Option) Option {
func WithExtraKeys(keys []ExtraKey) Option {
return option(func(cfg *config) {
for _, k := range keys {
if !inArray(k, cfg.extraKeys) {
if !InArray(k, cfg.extraKeys) {
cfg.extraKeys = append(cfg.extraKeys, k)
}
}
Expand Down
4 changes: 2 additions & 2 deletions zap/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

package zap

// inArray check if a string in a slice
func inArray(key ExtraKey, arr []ExtraKey) bool {
// InArray check if a string in a slice
func InArray(key ExtraKey, arr []ExtraKey) bool {
for _, k := range arr {
if k == key {
return true
Expand Down
4 changes: 2 additions & 2 deletions zap/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,6 @@ import (
func TestInArray(t *testing.T) {
key1 := ExtraKey("key1")
key2 := ExtraKey("key2")
assert.True(t, inArray(key1, []ExtraKey{key1}))
assert.False(t, inArray(key2, []ExtraKey{key1}))
assert.True(t, InArray(key1, []ExtraKey{key1}))
assert.False(t, InArray(key2, []ExtraKey{key1}))
}

0 comments on commit 83308f0

Please sign in to comment.