Skip to content

Commit 92b70aa

Browse files
committed
Add LOG_FORMATTER to select between text and json using env.
1 parent 8d16d2b commit 92b70aa

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ NewLogger(wr io.Writer, formatter Formatter, hooks ...Hook) Logger
1313
```
1414

1515
Available formatters:
16-
* `suplog.JSONFormatter` — suplogs all log entries as JSON objects
17-
* `suplog.TextFormatter` — suplogs log entries as text lines for TTY or without TTY colors.
16+
* `suplog.TextFormatter` — suplogs log entries as text lines for TTY or without TTY colors (`LOG_FORMATTER=text`)
17+
* `suplog.JSONFormatter` — suplogs all log entries as JSON objects (`LOG_FORMATTER=json`)
1818

1919
Available hooks:
2020
* [github.com/xlab/suplog/hooks/debug](https://github.com/xlab/suplog/blob/master/hooks/debug/hook.go#L14)

suplog.go

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,16 @@ import (
1515
"github.com/xlab/suplog/stackcache"
1616
)
1717

18-
// NewLogger constructs a new suplogger.
18+
// NewLogger constructs a new suplogger. The default formatter would be TextFormatter
19+
// if not overrident by and env variable.
1920
func NewLogger(wr io.Writer, formatter Formatter, hooks ...Hook) Logger {
2021
if formatter == nil {
21-
formatter = new(TextFormatter)
22+
switch os.Getenv("LOG_FORMATTER") {
23+
case "json":
24+
formatter = new(JSONFormatter)
25+
default:
26+
formatter = new(TextFormatter)
27+
}
2228
}
2329

2430
log := &suplogger{
@@ -70,10 +76,18 @@ func (l *suplogger) initOnce() {
7076
l.writer = os.Stderr
7177
}
7278

79+
var formatter Formatter
80+
switch os.Getenv("LOG_FORMATTER") {
81+
case "json":
82+
formatter = new(JSONFormatter)
83+
default:
84+
formatter = new(TextFormatter)
85+
}
86+
7387
// otherwise init output with conservative defaults
7488
l.logger = &logrus.Logger{
7589
Out: l.writer,
76-
Formatter: new(TextFormatter),
90+
Formatter: formatter,
7791
Hooks: make(LevelHooks),
7892
Level: DebugLevel,
7993
ExitFunc: closer.Exit,

0 commit comments

Comments
 (0)