@@ -19,6 +19,7 @@ package kernelmonitor
19
19
import (
20
20
"bufio"
21
21
"bytes"
22
+ "fmt"
22
23
"io"
23
24
"os"
24
25
"strings"
@@ -125,7 +126,6 @@ func (k *kernelLogWatcher) watchLoop() {
125
126
}
126
127
var buffer bytes.Buffer
127
128
for {
128
-
129
129
select {
130
130
case <- k .tomb .Stopping ():
131
131
glog .Infof ("Stop watching kernel log" )
@@ -138,13 +138,18 @@ func (k *kernelLogWatcher) watchLoop() {
138
138
glog .Errorf ("exiting kernel log watch with error: %v" , err )
139
139
return
140
140
}
141
+ if err == io .EOF {
142
+ buffer .WriteString (line )
143
+ time .Sleep (100 * time .Millisecond )
144
+ continue
145
+ }
141
146
if line == "" {
142
147
time .Sleep (100 * time .Millisecond )
143
148
continue
144
149
}
145
150
if err == nil {
146
151
buffer .WriteString (line )
147
- // trime `\n`
152
+ // trim `\n`
148
153
line = strings .TrimRight (buffer .String (), "\n " )
149
154
buffer .Reset ()
150
155
log , err := k .trans .Translate (line )
@@ -157,8 +162,6 @@ func (k *kernelLogWatcher) watchLoop() {
157
162
continue
158
163
}
159
164
k .logCh <- log
160
- } else { // err == io.EOF
161
- buffer .WriteString (line )
162
165
}
163
166
}
164
167
}
@@ -187,10 +190,10 @@ func tryJournal() (io.Reader, error) {
187
190
},
188
191
})
189
192
if err != nil {
190
- return nil , fmt .Errorf ("Error opening journal: %v" , err )
193
+ return nil , fmt .Errorf ("error opening journal: %v" , err )
191
194
}
192
195
if r == nil {
193
- return nil , fmt .Errorf ("Got a nil reader" )
196
+ return nil , fmt .Errorf ("got a nil reader" )
194
197
}
195
198
glog .Info ("Kernel log watcher use journal" )
196
199
return r , nil
0 commit comments