Skip to content

Commit 3bf6cc5

Browse files
authored
Add the ErrorIf function for Logger interface (#25)
1 parent 30f5d3d commit 3bf6cc5

File tree

6 files changed

+31
-8
lines changed

6 files changed

+31
-8
lines changed

base_logger.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ func (l *baseLogger) Error(err error, format string, args ...any) {
3636
l.logWithErr(err, level.ErrorLevel, format, args...)
3737
}
3838

39+
func (l *baseLogger) ErrorIf(err error, format string, args ...any) error {
40+
return errorIf(l.Error, err, format, args...)
41+
}
42+
3943
// Log write a format log
4044
func (l *baseLogger) Log(format string, args ...any) {
4145
format = formatter.AppendRowTerminator(format)
@@ -96,3 +100,10 @@ func (l *baseLogger) setTimeFormat(f string) {
96100
func checkLogLevel(lvl level.Level, currentLevel level.Level) bool {
97101
return currentLevel >= lvl
98102
}
103+
104+
func errorIf(f func(err error, format string, args ...any), err error, format string, args ...any) error {
105+
if err != nil {
106+
f(err, format, args...)
107+
}
108+
return err
109+
}

default_logger.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,7 @@ func Error(err error, format string, args ...any) {
5454

5555
// ErrorIf write the error log if err is not nil
5656
func ErrorIf(err error, format string, args ...any) error {
57-
if err != nil {
58-
Error(err, format, args...)
59-
}
60-
return err
57+
return DefaultLogger().ErrorIf(err, format, args...)
6158
}
6259

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

8380
// ErrorIfSample write the error log by random sampling if err is not nil
8481
func ErrorIfSample(err error, format string, args ...any) error {
85-
if err != nil {
86-
ErrorSample(err, format, args...)
87-
}
88-
return err
82+
return DefaultSampleLogger().ErrorIf(err, format, args...)
8983
}
9084

9185
// Log write the log without level

empty_logger.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ func (l *emptyLogger) Error(err error, format string, args ...any) {
2929

3030
}
3131

32+
func (l *emptyLogger) ErrorIf(err error, format string, args ...any) error {
33+
return err
34+
}
35+
3236
func (l *emptyLogger) Log(format string, args ...any) {
3337

3438
}

logger.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,16 @@ type Logger interface {
1313
Writer
1414
Option
1515

16+
// Debug write the debug log
1617
Debug(format string, args ...any)
18+
// Info write the info log
1719
Info(format string, args ...any)
20+
// Warn write the warn log
1821
Warn(format string, args ...any)
22+
// Error write the error log
1923
Error(err error, format string, args ...any)
24+
// ErrorIf write the error log if err is not nil
25+
ErrorIf(err error, format string, args ...any) error
2026
}
2127

2228
// Writer implement write to log

multi_logger.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ func (l *multiLogger) Error(err error, format string, args ...any) {
4343
}
4444
}
4545

46+
func (l *multiLogger) ErrorIf(err error, format string, args ...any) error {
47+
return errorIf(l.Error, err, format, args...)
48+
}
49+
4650
func (l *multiLogger) Log(format string, args ...any) {
4751
for _, logger := range l.loggers {
4852
logger.Log(format, args...)

sample_logger.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ func (l *sampleLogger) Error(err error, format string, args ...any) {
5050
}
5151
}
5252

53+
func (l *sampleLogger) ErrorIf(err error, format string, args ...any) error {
54+
return errorIf(l.Error, err, format, args...)
55+
}
56+
5357
func (l *sampleLogger) Log(format string, args ...any) {
5458
l.logger.Log(format, args...)
5559
}

0 commit comments

Comments
 (0)