diff --git a/README.md b/README.md index bfadf2c..6843fcc 100644 --- a/README.md +++ b/README.md @@ -295,7 +295,8 @@ The built-in logging formatters are: * `logrus.TextFormatter`. Logs the event in colors if stdout is a tty, otherwise without colors. * *Note:* to force colored output when there is no TTY, set the `ForceColors` - field to `true`. + field to `true`. To force no colored output even if there is a TTY set the + `DisableColors` field to `true` * `logrus.JSONFormatter`. Logs fields as JSON. Third party logging formatters: diff --git a/text_formatter.go b/text_formatter.go index d71eba1..4b93690 100644 --- a/text_formatter.go +++ b/text_formatter.go @@ -26,7 +26,8 @@ func miniTS() int { type TextFormatter struct { // Set to true to bypass checking for a TTY before outputting colors. - ForceColors bool + ForceColors bool + DisableColors bool } func (f *TextFormatter) Format(entry *Entry) ([]byte, error) { @@ -34,7 +35,7 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) { prefixFieldClashes(entry) - if f.ForceColors || IsTerminal() { + if (f.ForceColors || IsTerminal()) && !f.DisableColors { levelText := strings.ToUpper(entry.Data["level"].(string))[0:4] levelColor := blue