Skip to content

Commit

Permalink
feat: add logger file
Browse files Browse the repository at this point in the history
  • Loading branch information
mauricioromagnollo committed Oct 27, 2023
1 parent 310233e commit fd5b8e0
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
44 changes: 44 additions & 0 deletions external/config/logger.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package config

import "go.uber.org/zap"

// Logger is a wrapper for an logger library
type Logger struct {
logger *zap.Logger
}

// NewLogger creates a new logger instance
func NewLogger(isEnabled bool) (*Logger, error) {
if !isEnabled {
return &Logger{
logger: zap.NewNop(),
}, nil
}

zapLogger, err := zap.NewProduction()
if err != nil {
return nil, err
}

return &Logger{
logger: zapLogger,
}, nil
}

// Info logs an informational message.
func (l *Logger) Info(message string) {
l.logger.Info(message)
}

// Error logs an error message.
func (l *Logger) Error(message string) {
l.logger.Error(message)
}

// Sync calls the underlying Core's Sync method, flushing any buffered log entries. Applications should take care to call Sync before exiting.
func (l *Logger) Sync() {
err := l.logger.Sync()
if err != nil {
panic(err)
}
}
23 changes: 23 additions & 0 deletions external/config/logger_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package config

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestNewLogger(t *testing.T) {
t.Run("should return a new logger instance", func(t *testing.T) {
logger, err := NewLogger(true)

assert.NotNil(t, logger)
assert.Nil(t, err)
})

t.Run("should return a new logger instance with zap.NewNop()", func(t *testing.T) {
logger, err := NewLogger(false)

assert.NotNil(t, logger)
assert.Nil(t, err)
})
}

0 comments on commit fd5b8e0

Please sign in to comment.