Skip to content

Commit b83197c

Browse files
committed
Fix log format to space pad PID instead of zero pad.
This now matches C++ and the code comments.
1 parent 5066b11 commit b83197c

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

glog.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -571,9 +571,9 @@ func (l *loggingT) formatHeader(s severity, file string, line int) *buffer {
571571
buf.tmp[11] = ':'
572572
buf.twoDigits(12, second)
573573
buf.tmp[14] = '.'
574-
buf.nDigits(6, 15, now.Nanosecond()/1000)
574+
buf.nDigits(6, 15, now.Nanosecond()/1000, '0')
575575
buf.tmp[21] = ' '
576-
buf.nDigits(5, 22, pid) // TODO: should be TID
576+
buf.nDigits(5, 22, pid, ' ') // TODO: should be TID
577577
buf.tmp[27] = ' '
578578
buf.Write(buf.tmp[:28])
579579
buf.WriteString(file)
@@ -596,12 +596,18 @@ func (buf *buffer) twoDigits(i, d int) {
596596
buf.tmp[i] = digits[d%10]
597597
}
598598

599-
// nDigits formats a zero-prefixed n-digit integer at buf.tmp[i].
600-
func (buf *buffer) nDigits(n, i, d int) {
601-
for j := n - 1; j >= 0; j-- {
599+
// nDigits formats an n-digit integer at buf.tmp[i],
600+
// padding with pad on the left.
601+
// It assumes d >= 0.
602+
func (buf *buffer) nDigits(n, i, d int, pad byte) {
603+
j := n - 1
604+
for ; j >= 0 && d > 0; j-- {
602605
buf.tmp[i+j] = digits[d%10]
603606
d /= 10
604607
}
608+
for ; j >= 0; j-- {
609+
buf.tmp[i+j] = pad
610+
}
605611
}
606612

607613
// someDigits formats a zero-prefixed variable-width integer at buf.tmp[i].

glog_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,13 @@ func TestHeader(t *testing.T) {
130130
defer logging.swap(logging.newBuffers())
131131
defer func(previous func() time.Time) { timeNow = previous }(timeNow)
132132
timeNow = func() time.Time {
133-
return time.Date(2006, 1, 2, 15, 4, 5, .678901e9, time.Local)
133+
return time.Date(2006, 1, 2, 15, 4, 5, .067890e9, time.Local)
134134
}
135+
pid = 1234
135136
Info("test")
136-
var line, pid int
137-
n, err := fmt.Sscanf(contents(infoLog), "I0102 15:04:05.678901 %d glog_test.go:%d] test\n", &pid, &line)
138-
if n != 2 || err != nil {
137+
var line int
138+
n, err := fmt.Sscanf(contents(infoLog), "I0102 15:04:05.067890 1234 glog_test.go:%d] test\n", &line)
139+
if n != 1 || err != nil {
139140
t.Errorf("log format error: %d elements, error %s:\n%s", n, err, contents(infoLog))
140141
}
141142
}

0 commit comments

Comments
 (0)