Skip to content

Commit 746e299

Browse files
committed
Add error level
Signed-off-by: Yunxiang Huang <[email protected]>
1 parent 5016400 commit 746e299

File tree

5 files changed

+45
-4
lines changed

5 files changed

+45
-4
lines changed

color.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ import (
1010

1111
// Colors.
1212
const (
13-
ColorBlue = "\x1b[0;34m"
14-
ColorGreen = "\x1b[0;32m"
15-
ColorYellow = "\x1b[0;33m"
16-
ColorRed = "\x1b[0;31m"
13+
ColorBlue = "\x1b[0;34m"
14+
ColorGreen = "\x1b[0;32m"
15+
ColorYellow = "\x1b[0;33m"
16+
ColorRed = "\x1b[0;31m"
17+
ColorMegenta = "\x1b[0;35m"
1718

1819
ColorRST = "\x1b[0;m"
1920
)

default.go

+10
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,16 @@ func Warnf(f string, a ...interface{}) {
5959
defaultLogger.Warnf(f, a...)
6060
}
6161

62+
// Error calls the same method on the default logger.
63+
func Error(a ...interface{}) {
64+
defaultLogger.Warn(a...)
65+
}
66+
67+
// Errorf calls the same method on the default logger.
68+
func Errorf(f string, a ...interface{}) {
69+
defaultLogger.Warnf(f, a...)
70+
}
71+
6272
// Fatal calls the same method on the default logger.
6373
func Fatal(a ...interface{}) {
6474
defaultLogger.Fatal(a...)

level.go

+5
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const (
99
DEBUG
1010
INFO
1111
WARN
12+
ERROR
1213
FATA
1314
)
1415

@@ -22,6 +23,8 @@ func LevelFromString(s string) Level {
2223
return INFO
2324
case "WARN", "WARNING", "W":
2425
return WARN
26+
case "ERROR", "E":
27+
return ERROR
2528
case "FATA", "FATAL", "F":
2629
return FATA
2730
case "NOTSET", "NOT SET", "N":
@@ -43,6 +46,8 @@ func (l Level) String() string {
4346
return "INFO"
4447
case WARN:
4548
return "WARN"
49+
case ERROR:
50+
return "ERROR"
4651
case FATA:
4752
return "FATA"
4853
case NOTSET:

leveled_logger.go

+18
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ func NewLeveledLoggerWithColor(out io.Writer, flag int, colored bool) *LeveledLo
2121
debug: log.New(out, tryPaint("D ", ColorBlue, colored), flag),
2222
info: log.New(out, tryPaint("I ", ColorGreen, colored), flag),
2323
warn: log.New(out, tryPaint("W ", ColorYellow, colored), flag),
24+
erro: log.New(out, tryPaint("E ", ColorMegenta, colored), flag),
2425
fata: log.New(out, tryPaint("F ", ColorRed, colored), flag),
2526
defaultLevel: INFO,
2627
outputLevel: NOTSET,
@@ -40,6 +41,7 @@ type LeveledLogger struct {
4041
debug *log.Logger
4142
info *log.Logger
4243
warn *log.Logger
44+
erro *log.Logger
4345
fata *log.Logger
4446
outputLevel Level
4547
defaultLevel Level
@@ -146,6 +148,22 @@ func (l *LeveledLogger) Warnf(format string, a ...interface{}) {
146148
}
147149
}
148150

151+
// Error prints log with level ERROR.
152+
// Arguments are handled in the manner of fmt.Print.
153+
func (l *LeveledLogger) Error(a ...interface{}) {
154+
if WARN >= l.OutputLevel() {
155+
l.erro.Output(l.depth, fmt.Sprint(a...))
156+
}
157+
}
158+
159+
// Errorf prints log with level ERROR.
160+
// Arguments are handled in the manner of fmt.Printf.
161+
func (l *LeveledLogger) Errorf(format string, a ...interface{}) {
162+
if WARN >= l.OutputLevel() {
163+
l.erro.Output(l.depth, fmt.Sprintf(format, a...))
164+
}
165+
}
166+
149167
// Fatal prints log with level FATA then os.Exit(1).
150168
// Arguments are handled in the manner of fmt.Print.
151169
func (l *LeveledLogger) Fatal(a ...interface{}) {

logger.go

+7
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ type WarnLogger interface {
2525
Warnf(string, ...interface{})
2626
}
2727

28+
// WarnLogger represents a logger with Error* APIs.
29+
type ErrorLogger interface {
30+
Error(...interface{})
31+
Errorf(string, ...interface{})
32+
}
33+
2834
// FatalLogger represents a logger with Fatal* APIs.
2935
type FatalLogger interface {
3036
Fatal(...interface{})
@@ -51,6 +57,7 @@ type Logger interface {
5157
PrintLogger
5258
InfoLogger
5359
WarnLogger
60+
ErrorLogger
5461
FatalLogger
5562

5663
Leveler

0 commit comments

Comments
 (0)