From 813031a98992e4d56b6b8ad577e3fd1fcdc7d7b9 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Sat, 2 May 2015 01:13:07 +0200 Subject: [PATCH] debug: Dynamically pad tag in debug log --- debug/debug.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/debug/debug.go b/debug/debug.go index 12aa2cb1d..a77cb3836 100644 --- a/debug/debug.go +++ b/debug/debug.go @@ -9,6 +9,7 @@ import ( "path" "path/filepath" "runtime" + "strconv" "strings" "sync" "syscall" @@ -145,6 +146,8 @@ func getPosition() string { return fmt.Sprintf("%3d %s:%3d", goroutine, filepath.Base(file), line) } +var maxTagLen = 10 + func Log(tag string, f string, args ...interface{}) { opts.m.Lock() defer opts.m.Unlock() @@ -153,7 +156,12 @@ func Log(tag string, f string, args ...interface{}) { f += "\n" } - formatString := fmt.Sprintf("[% 25s] %-20s %s", tag, getPosition(), f) + if len(tag) > maxTagLen { + maxTagLen = len(tag) + } + + formatStringTag := "[%" + strconv.FormatInt(int64(maxTagLen), 10) + "s]" + formatString := fmt.Sprintf(formatStringTag+" %s %s", tag, getPosition(), f) dbgprint := func() { fmt.Fprintf(os.Stderr, formatString, args...)