Skip to content

Commit bc5a4e2

Browse files
committed
log: fix logging
1 parent 33d9153 commit bc5a4e2

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

log.go

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,41 @@
11
package shell
22

33
import (
4+
"context"
45
"encoding/json"
5-
"fmt"
66
"io"
7-
"net/http"
87
)
98

109
// Logger is used to handle incoming logs from the ipfs node
1110
type Logger struct {
12-
r io.ReadCloser
11+
resp io.ReadCloser
12+
dec *json.Decoder
1313
}
1414

1515
// Next is used to retrieve the next event from the logging system
1616
func (l Logger) Next() (map[string]interface{}, error) {
1717
var out map[string]interface{}
18-
if err := json.NewDecoder(l.r).Decode(&out); err != nil {
19-
return nil, err
20-
}
21-
return out, nil
18+
return out, l.dec.Decode(&out)
2219
}
2320

2421
// Close is used to close our reader
2522
func (l Logger) Close() error {
26-
return l.r.Close()
23+
return l.resp.Close()
2724
}
2825

2926
// GetLogs is used to retrieve a parsable logger object
30-
func (s *Shell) GetLogs() (Logger, error) {
31-
logURL := fmt.Sprintf("http://%s/api/v0/log/tail", s.url)
32-
req, err := http.NewRequest("GET", logURL, nil)
27+
func (s *Shell) GetLogs(ctx context.Context) (Logger, error) {
28+
resp, err := s.Request("log/tail").Send(ctx)
3329
if err != nil {
3430
return Logger{}, err
3531
}
36-
hc := &http.Client{}
37-
resp, err := hc.Do(req)
38-
if err != nil {
39-
return Logger{}, err
32+
if resp.Error != nil {
33+
resp.Output.Close()
34+
return Logger{}, resp.Error
4035
}
41-
return Logger{resp.Body}, nil
36+
return newLogger(resp.Output), nil
37+
}
38+
39+
func newLogger(resp io.ReadCloser) Logger {
40+
return Logger{resp, json.NewDecoder(resp)}
4241
}

log_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
package shell
22

3-
import "testing"
3+
import (
4+
"context"
5+
"testing"
6+
)
47

58
func Test_Logger(t *testing.T) {
9+
ctx, cancel := context.WithCancel(context.Background())
10+
defer cancel()
611
sh := NewLocalShell()
7-
logger, err := sh.GetLogs()
12+
logger, err := sh.GetLogs(ctx)
813
if err != nil {
914
t.Fatal(err)
1015
}

0 commit comments

Comments
 (0)