Skip to content

Commit

Permalink
Add the ErrorIf function for Logger interface (#25)
Browse files Browse the repository at this point in the history
  • Loading branch information
mstmdev authored Sep 6, 2023
1 parent 30f5d3d commit 3bf6cc5
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 8 deletions.
11 changes: 11 additions & 0 deletions base_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ func (l *baseLogger) Error(err error, format string, args ...any) {
l.logWithErr(err, level.ErrorLevel, format, args...)
}

func (l *baseLogger) ErrorIf(err error, format string, args ...any) error {
return errorIf(l.Error, err, format, args...)
}

// Log write a format log
func (l *baseLogger) Log(format string, args ...any) {
format = formatter.AppendRowTerminator(format)
Expand Down Expand Up @@ -96,3 +100,10 @@ func (l *baseLogger) setTimeFormat(f string) {
func checkLogLevel(lvl level.Level, currentLevel level.Level) bool {
return currentLevel >= lvl
}

func errorIf(f func(err error, format string, args ...any), err error, format string, args ...any) error {
if err != nil {
f(err, format, args...)
}
return err
}
10 changes: 2 additions & 8 deletions default_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,7 @@ func Error(err error, format string, args ...any) {

// ErrorIf write the error log if err is not nil
func ErrorIf(err error, format string, args ...any) error {
if err != nil {
Error(err, format, args...)
}
return err
return DefaultLogger().ErrorIf(err, format, args...)
}

// DebugSample write the debug log by random sampling
Expand All @@ -82,10 +79,7 @@ func ErrorSample(err error, format string, args ...any) {

// ErrorIfSample write the error log by random sampling if err is not nil
func ErrorIfSample(err error, format string, args ...any) error {
if err != nil {
ErrorSample(err, format, args...)
}
return err
return DefaultSampleLogger().ErrorIf(err, format, args...)
}

// Log write the log without level
Expand Down
4 changes: 4 additions & 0 deletions empty_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ func (l *emptyLogger) Error(err error, format string, args ...any) {

}

func (l *emptyLogger) ErrorIf(err error, format string, args ...any) error {
return err
}

func (l *emptyLogger) Log(format string, args ...any) {

}
Expand Down
6 changes: 6 additions & 0 deletions logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,16 @@ type Logger interface {
Writer
Option

// Debug write the debug log
Debug(format string, args ...any)
// Info write the info log
Info(format string, args ...any)
// Warn write the warn log
Warn(format string, args ...any)
// Error write the error log
Error(err error, format string, args ...any)
// ErrorIf write the error log if err is not nil
ErrorIf(err error, format string, args ...any) error
}

// Writer implement write to log
Expand Down
4 changes: 4 additions & 0 deletions multi_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ func (l *multiLogger) Error(err error, format string, args ...any) {
}
}

func (l *multiLogger) ErrorIf(err error, format string, args ...any) error {
return errorIf(l.Error, err, format, args...)
}

func (l *multiLogger) Log(format string, args ...any) {
for _, logger := range l.loggers {
logger.Log(format, args...)
Expand Down
4 changes: 4 additions & 0 deletions sample_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ func (l *sampleLogger) Error(err error, format string, args ...any) {
}
}

func (l *sampleLogger) ErrorIf(err error, format string, args ...any) error {
return errorIf(l.Error, err, format, args...)
}

func (l *sampleLogger) Log(format string, args ...any) {
l.logger.Log(format, args...)
}
Expand Down

0 comments on commit 3bf6cc5

Please sign in to comment.