From 6244220681d2e6546d37af6a46c581a8736438da Mon Sep 17 00:00:00 2001 From: Gustavo Date: Tue, 23 Jan 2024 08:25:59 -0300 Subject: [PATCH] feat: add zap logger implementation --- consumer/logger/logger.go | 24 ++++++++++++++++++------ consumer/logger/logger_test.go | 14 ++++++++++++++ consumer/sqsclient.go | 4 +--- go.mod | 2 ++ go.sum | 4 ++++ 5 files changed, 39 insertions(+), 9 deletions(-) diff --git a/consumer/logger/logger.go b/consumer/logger/logger.go index f60c6db..679c45b 100644 --- a/consumer/logger/logger.go +++ b/consumer/logger/logger.go @@ -2,21 +2,33 @@ package logger import ( "fmt" - "log/slog" - "os" + + "go.uber.org/zap" + "go.uber.org/zap/zapcore" ) type DefaultLogger struct { - *slog.Logger + *zap.Logger } func New() *DefaultLogger { - logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) + logger := zap.Config{ + Level: zap.NewAtomicLevelAt(zapcore.InfoLevel), + OutputPaths: []string{"stdout"}, + Encoding: "json", + EncoderConfig: zapcore.EncoderConfig{ + MessageKey: "message", + TimeKey: "time", + LevelKey: "level", + EncodeTime: zapcore.ISO8601TimeEncoder, + EncodeLevel: zapcore.LowercaseLevelEncoder, + }, + } - slog.SetDefault(logger) + zapLogger, _ := logger.Build() return &DefaultLogger{ - Logger: logger, + Logger: zapLogger, } } diff --git a/consumer/logger/logger_test.go b/consumer/logger/logger_test.go index 97a0f98..e0a8e61 100644 --- a/consumer/logger/logger_test.go +++ b/consumer/logger/logger_test.go @@ -1,6 +1,8 @@ package logger_test import ( + "testing" + "github.com/inaciogu/go-sqs/consumer/logger" "github.com/stretchr/testify/suite" ) @@ -9,8 +11,20 @@ type UnitTestSuite struct { suite.Suite } +func TestUnitSuites(t *testing.T) { + suite.Run(t, new(UnitTestSuite)) +} + func (ut *UnitTestSuite) TestNew() { logger := logger.New() ut.NotNil(logger) } + +func (ut *UnitTestSuite) TestLog() { + logger := logger.New() + + logger.Log("test") + + ut.NotNil(logger) +} diff --git a/consumer/sqsclient.go b/consumer/sqsclient.go index 15015e3..5dd9e6b 100644 --- a/consumer/sqsclient.go +++ b/consumer/sqsclient.go @@ -137,10 +137,8 @@ func (s *SQSClient) ReceiveMessages(queueUrl string, ch chan *sqs.Message) error queueName := splittedUrl[len(splittedUrl)-1] - s.Logger.Log("polling messages from queue %s", queueName) - for { - s.Logger.Log("polling messages from queue %s\n", queueName) + s.Logger.Log("polling messages from queue %s", queueName) result, err := s.Client.ReceiveMessage(&sqs.ReceiveMessageInput{ QueueUrl: aws.String(queueUrl), diff --git a/go.mod b/go.mod index 542204e..e4f8b9e 100644 --- a/go.mod +++ b/go.mod @@ -13,5 +13,7 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/stretchr/objx v0.5.0 // indirect + go.uber.org/multierr v1.10.0 // indirect + go.uber.org/zap v1.26.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 1f5a5ea..6d72f79 100644 --- a/go.sum +++ b/go.sum @@ -21,6 +21,10 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=