From 9561fcd7d62d543624c02c2af4d192ede4674914 Mon Sep 17 00:00:00 2001 From: Antoine Grondin Date: Wed, 22 Apr 2015 22:48:32 -0400 Subject: [PATCH 1/4] assertify changed behavior and consider float64 != int --- logrus_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logrus_test.go b/logrus_test.go index d85dba4..efaacea 100644 --- a/logrus_test.go +++ b/logrus_test.go @@ -191,7 +191,7 @@ func TestUserSuppliedLevelFieldHasPrefix(t *testing.T) { log.WithField("level", 1).Info("test") }, func(fields Fields) { assert.Equal(t, fields["level"], "info") - assert.Equal(t, fields["fields.level"], 1) + assert.Equal(t, fields["fields.level"], 1.0) // JSON has floats only }) } From f8f08842cce7ed05c296430852f60f287458c529 Mon Sep 17 00:00:00 2001 From: Antoine Grondin Date: Wed, 22 Apr 2015 15:27:44 -0400 Subject: [PATCH 2/4] default logs to stderr --- CHANGELOG.md | 4 ++++ logger.go | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb72bff..2cf1175 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.8 + +logrus: defaults to stderr instead of stdout + # 0.7.3 formatter/\*: allow configuration of timestamp layout diff --git a/logger.go b/logger.go index da928a3..3c07ea7 100644 --- a/logger.go +++ b/logger.go @@ -44,7 +44,7 @@ type Logger struct { // It's recommended to make this a global instance called `log`. func New() *Logger { return &Logger{ - Out: os.Stdout, + Out: os.Stderr, Formatter: new(TextFormatter), Hooks: make(levelHooks), Level: InfoLevel, From 29d30d9f63041b476217e4ff8bfbbe788ee06c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20F=20R=C3=B8dseth?= Date: Tue, 12 May 2015 16:31:17 +0200 Subject: [PATCH 3/4] Terminals on Windows may not have colors --- text_formatter.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/text_formatter.go b/text_formatter.go index 612417f..4ed90e1 100644 --- a/text_formatter.go +++ b/text_formatter.go @@ -3,6 +3,7 @@ package logrus import ( "bytes" "fmt" + "runtime" "sort" "strings" "time" @@ -69,7 +70,8 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) { prefixFieldClashes(entry.Data) - isColored := (f.ForceColors || isTerminal) && !f.DisableColors + isColorTerminal := isTerminal && (runtime.GOOS != "windows") + isColored := (f.ForceColors || isColorTerminal) && !f.DisableColors if f.TimestampFormat == "" { f.TimestampFormat = DefaultTimestampFormat From f1d275b80025eebbc483ae512be3b91b8aef1bf6 Mon Sep 17 00:00:00 2001 From: Matthew Baird Date: Tue, 12 May 2015 09:27:20 -0700 Subject: [PATCH 4/4] proper use of TextFormatter in documentation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d55f909..64e4914 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"} "time":"2014-03-10 19:57:38.562543128 -0400 EDT"} ``` -With the default `log.Formatter = new(logrus.TextFormatter)` when a TTY is not +With the default `log.Formatter = new(&log.TextFormatter{})` when a TTY is not attached, the output is compatible with the [logfmt](http://godoc.org/github.com/kr/logfmt) format: @@ -269,7 +269,7 @@ init() { log.SetFormatter(logrus.JSONFormatter) } else { // The TextFormatter is default, you don't actually have to do this. - log.SetFormatter(logrus.TextFormatter) + log.SetFormatter(&log.TextFormatter{}) } } ```