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 {
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:
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()
}