Skip to content

Commit b7ed065

Browse files
committed
feat: add NoFieldsColors option, fields with colors by default
1 parent f0afcd9 commit b7ed065

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ Default logrus formatter:
1212

1313
```go
1414
type Formatter struct {
15+
FieldsOrder []string // default: fields sorted alphabetically
1516
TimestampFormat string // default: time.StampMilli = "Jan _2 15:04:05.000"
1617
HideKeys bool // show [fieldValue] instead of [fieldKey:fieldValue]
1718
NoColors bool // disable colors
18-
ShowFullLevel bool // true to show full level [WARNING] instead of [WARN]
19-
FieldsOrder []string // default: fields sorted alphabetically
19+
NoFieldsColors bool // color only level, default is level + fields
20+
ShowFullLevel bool // true to show full level [WARNING] instead [WARN]
2021
}
2122
```
2223

example/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ func main() {
1111
printDemo(&formatter.Formatter{
1212
HideKeys: true,
1313
FieldsOrder: []string{"component", "category", "req"},
14-
})
14+
}, "nested-logrus-formatter")
1515

1616
fmt.Print("\n--- default logrus formatter ---\n\n")
17-
printDemo(nil)
17+
printDemo(nil, "default logrus formatter")
1818
}
1919

20-
func printDemo(f logrus.Formatter) {
20+
func printDemo(f logrus.Formatter, title string) {
2121
l := logrus.New()
2222

2323
l.SetLevel(logrus.DebugLevel)
@@ -26,7 +26,7 @@ func printDemo(f logrus.Formatter) {
2626
l.SetFormatter(f)
2727
}
2828

29-
l.Info("this is nested-logrus-formatter demo")
29+
l.Infof("this is %v demo", title)
3030

3131
lWebServer := l.WithField("component", "web-server")
3232
lWebServer.Info("starting...")

formatter.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ import (
1212

1313
// Formatter - logrus formatter, implements logrus.Formatter
1414
type Formatter struct {
15+
FieldsOrder []string // default: fields sorted alphabetically
1516
TimestampFormat string // default: time.StampMilli = "Jan _2 15:04:05.000"
1617
HideKeys bool // show [fieldValue] instead of [fieldKey:fieldValue]
1718
NoColors bool // disable colors
19+
NoFieldsColors bool // color only level, default is level + fields
1820
ShowFullLevel bool // true to show full level [WARNING] instead [WARN]
19-
FieldsOrder []string // default: fields sorted alphabetically
2021
}
2122

2223
// Format an log entry
@@ -37,22 +38,20 @@ func (f *Formatter) Format(entry *logrus.Entry) ([]byte, error) {
3738
// write level
3839
level := strings.ToUpper(entry.Level.String())
3940

40-
if f.NoColors {
41-
b.WriteString(" [")
42-
} else {
43-
fmt.Fprintf(b, " \x1b[%dm[", levelColor)
41+
if !f.NoColors {
42+
fmt.Fprintf(b, "\x1b[%dm", levelColor)
4443
}
4544

45+
b.WriteString(" [")
4646
if f.ShowFullLevel {
4747
b.WriteString(level)
4848
} else {
4949
b.WriteString(level[:4])
5050
}
51+
b.WriteString("] ")
5152

52-
if f.NoColors {
53-
b.WriteString("] ")
54-
} else {
55-
b.WriteString("]\x1b[0m ")
53+
if !f.NoColors && f.NoFieldsColors {
54+
b.WriteString("\x1b[0m ")
5655
}
5756

5857
// write fields
@@ -62,6 +61,10 @@ func (f *Formatter) Format(entry *logrus.Entry) ([]byte, error) {
6261
f.writeOrderedFields(b, entry)
6362
}
6463

64+
if !f.NoColors && !f.NoFieldsColors {
65+
b.WriteString("\x1b[0m ")
66+
}
67+
6568
// write message
6669
b.WriteString(entry.Message)
6770
b.WriteByte('\n')

0 commit comments

Comments
 (0)