text-formatter: assume that IsTerminal doesn't change during execution
diff --git a/entry.go b/entry.go
index 44ff056..58eb263 100644
--- a/entry.go
+++ b/entry.go
@@ -28,8 +28,6 @@
Message string
}
-var baseTimestamp time.Time
-
func NewEntry(logger *Logger) *Entry {
return &Entry{
Logger: logger,
diff --git a/text_formatter.go b/text_formatter.go
index 4b93690..0f38c45 100644
--- a/text_formatter.go
+++ b/text_formatter.go
@@ -16,8 +16,14 @@
blue = 34
)
+var (
+ baseTimestamp time.Time
+ isTerminal bool
+)
+
func init() {
baseTimestamp = time.Now()
+ isTerminal = IsTerminal()
}
func miniTS() int {
@@ -31,11 +37,12 @@
}
func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
+
b := &bytes.Buffer{}
prefixFieldClashes(entry)
- if (f.ForceColors || IsTerminal()) && !f.DisableColors {
+ if (f.ForceColors || isTerminal) && !f.DisableColors {
levelText := strings.ToUpper(entry.Data["level"].(string))[0:4]
levelColor := blue
@@ -50,8 +57,8 @@
fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%04d] %-44s ", levelColor, levelText, miniTS(), entry.Data["msg"])
- keys := make([]string, 0)
- for k, _ := range entry.Data {
+ var keys []string
+ for k := range entry.Data {
if k != "level" && k != "time" && k != "msg" {
keys = append(keys, k)
}