X-Git-Url: http://www.git.cypherpunks.ru/?p=goredo.git;a=blobdiff_plain;f=log.go;h=2745fd4ee71a05f90837f80f1fd2e2137f4e304b;hp=ebfb39493043b630f6b839ff75d6cecd54c0a91c;hb=465fef553f227a11b354182f588d9f6aa7fbbe09;hpb=d552af7be66a92c58c71794906e1e023d6d8956f diff --git a/log.go b/log.go index ebfb394..2745fd4 100644 --- a/log.go +++ b/log.go @@ -72,9 +72,21 @@ var ( flagLogPid = flag.Bool("log-pid", false, fmt.Sprintf("append PIDs (%s=1)", EnvLogPid)) flagLogJS = flag.Bool("log-js", false, fmt.Sprintf("enable jobserver messages logging (%s=1)", EnvLogJS)) - LogMutex sync.Mutex + LogMutex sync.Mutex + LogLenPrev int ) +func fillUpToTermSize(s, end string) string { + sLen := len(s) + if sLen < LogLenPrev { + s += strings.Repeat(" ", LogLenPrev-sLen) + LogLenPrev = sLen + } else { + LogLenPrev = sLen + } + return s + end +} + func trace(level, format string, args ...interface{}) { var p string if MyPid != 0 { @@ -83,7 +95,9 @@ func trace(level, format string, args ...interface{}) { switch level { case CNone: LogMutex.Lock() - os.Stderr.WriteString(StderrPrefix + p + fmt.Sprintf(format+"\n", args...)) + os.Stderr.WriteString(fillUpToTermSize( + StderrPrefix+p+fmt.Sprintf(format, args...), "\n", + )) LogMutex.Unlock() return case CDebug: @@ -116,7 +130,7 @@ func trace(level, format string, args ...interface{}) { msg := fmt.Sprintf(format, args...) msg = StderrPrefix + colourize(level, p+strings.Repeat(". ", Level)+msg) LogMutex.Lock() - os.Stderr.WriteString(msg + "\n") + os.Stderr.WriteString(fillUpToTermSize(msg, "\n")) LogMutex.Unlock() }