Skip to content

Commit 60238a1

Browse files
committed
Go master, pserver, trainer: switch to log15, away from logrus
1 parent f28b4d6 commit 60238a1

File tree

16 files changed

+218
-138
lines changed

16 files changed

+218
-138
lines changed

go/cmd/master/master.go

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,8 @@ import (
2525
"strings"
2626
"time"
2727

28+
log "github.com/inconshreveable/log15"
2829
"github.com/namsral/flag"
29-
log "github.com/sirupsen/logrus"
30-
"github.com/topicai/candy"
3130

3231
"github.com/PaddlePaddle/Paddle/go/master"
3332
"github.com/PaddlePaddle/Paddle/go/utils/networkhelper"
@@ -41,40 +40,46 @@ func main() {
4140
taskTimeoutMax := flag.Int("task-timeout-max", 3, "max timtout count for each task before it being declared failed task.")
4241
chunkPerTask := flag.Int("chunk-per-task", 10, "chunk per task.")
4342
logLevel := flag.String("log-level", "info",
44-
"log level, possible values: debug, info, warning, error, fatal, panic")
43+
"log level, possible values: debug, info, warn, error, crit")
4544
flag.Parse()
4645

47-
level, e := log.ParseLevel(*logLevel)
48-
candy.Must(e)
46+
lvl, err := log.LvlFromString(*logLevel)
47+
if err != nil {
48+
panic(err)
49+
}
4950

50-
log.SetLevel(level)
51+
log.Root().SetHandler(
52+
log.LvlFilterHandler(lvl, log.CallerStackHandler("%+v", log.StderrHandler)),
53+
)
5154

5255
if *endpoints == "" {
53-
log.Warningln("-endpoints not set, fault tolerance not be enabled.")
56+
log.Warn("-endpoints not set, fault tolerance not be enabled.")
5457
}
5558

5659
var store master.Store
5760
if *endpoints != "" {
5861
eps := strings.Split(*endpoints, ",")
5962
ip, err := networkhelper.GetExternalIP()
6063
if err != nil {
61-
log.Fatal(err)
64+
log.Crit("get external ip error", log.Ctx{"error": err})
65+
panic(err)
6266
}
6367

6468
addr := fmt.Sprintf("%s:%d", ip, *port)
6569
store, err = master.NewEtcdClient(eps, addr, master.DefaultLockPath, master.DefaultAddrPath, master.DefaultStatePath, *ttlSec)
6670
if err != nil {
67-
log.Fatal(err)
71+
log.Crit("error creating etcd client.", log.Ctx{"error": err})
72+
panic(err)
6873
}
6974
} else {
7075
store = &master.InMemStore{}
7176
}
7277

7378
shutdown := func() {
74-
log.Infoln("shutting down gracefully")
79+
log.Info("shutting down gracefully")
7580
err := store.Shutdown()
7681
if err != nil {
77-
log.Errorln(err)
82+
log.Error("shutdown error", log.Ctx{"error": err})
7883
}
7984
}
8085

@@ -86,24 +91,28 @@ func main() {
8691

8792
s, err := master.NewService(store, *chunkPerTask, *taskTimeoutDur, *taskTimeoutMax)
8893
if err != nil {
89-
log.Fatal(err)
94+
log.Crit("error creating new service.", log.Ctx{"error": err})
95+
panic(err)
9096
}
9197

9298
err = rpc.Register(s)
9399
if err != nil {
94-
log.Fatal(err)
100+
log.Crit("error registering to etcd.", log.Ctx{"error": err})
101+
panic(err)
95102
}
96103

97104
rpc.HandleHTTP()
98105
l, err := net.Listen("tcp", ":"+strconv.Itoa(*port))
99106
if err != nil {
100-
log.Fatal(err)
107+
log.Crit("error listing to port", log.Ctx{"error": err, "port": *port})
108+
panic(err)
101109
}
102110

103111
go func() {
104112
err = http.Serve(l, nil)
105113
if err != nil {
106-
log.Fatal(err)
114+
log.Crit("error serving HTTP", log.Ctx{"error": err})
115+
panic(err)
107116
}
108117
}()
109118

go/cmd/pserver/pserver.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ import (
2727
"github.com/topicai/candy"
2828

2929
"github.com/PaddlePaddle/Paddle/go/pserver"
30-
log "github.com/sirupsen/logrus"
30+
log "github.com/inconshreveable/log15"
3131
)
3232

3333
func main() {
34-
port := flag.Int("port", 0, "port of the pserver")
34+
port := flag.Int("port", 8001, "port of the pserver")
3535
index := flag.Int("index", -1, "index of the pserver, set to -1 if use etcd for auto pserver index registry")
3636
etcdEndpoint := flag.String("etcd-endpoint", "http://127.0.0.1:2379",
3737
"comma separated endpoint string for pserver to connect to etcd")
@@ -41,13 +41,17 @@ func main() {
4141
checkpointPath := flag.String("checkpoint-path", "/checkpoints/", "save checkpoint path")
4242
checkpointInterval := flag.Duration("checkpoint-interval", 600*time.Second, "save checkpoint per interval seconds")
4343
logLevel := flag.String("log-level", "info",
44-
"log level, possible values: debug, info, warning, error, fatal, panic")
44+
"log level, possible values: debug, info, warn, error, crit")
4545
flag.Parse()
4646

47-
level, err := log.ParseLevel(*logLevel)
48-
candy.Must(err)
47+
lvl, err := log.LvlFromString(*logLevel)
48+
if err != nil {
49+
panic(err)
50+
}
4951

50-
log.SetLevel(level)
52+
log.Root().SetHandler(
53+
log.LvlFilterHandler(lvl, log.CallerStackHandler("%+v", log.StderrHandler)),
54+
)
5155

5256
var idx int
5357

@@ -63,18 +67,18 @@ func main() {
6367
cp, err = pserver.LoadCheckpoint(e, idx)
6468
if err != nil {
6569
if err == pserver.ErrCheckpointNotFound {
66-
log.Infof("Could not find the pserver checkpoint.")
70+
log.Info("Could not find the pserver checkpoint.")
6771
} else {
6872
panic(err)
6973
}
7074
}
7175
}
7276

7377
shutdown := func() {
74-
log.Infoln("shutting down gracefully")
78+
log.Info("shutting down gracefully")
7579
sErr := e.Shutdown()
7680
if sErr != nil {
77-
log.Errorln(sErr)
81+
log.Error("error shutting down", log.Ctx{"error": sErr})
7882
}
7983
}
8084

@@ -95,7 +99,7 @@ func main() {
9599
candy.Must(err)
96100

97101
go func() {
98-
log.Infof("start pserver at port %d", *port)
102+
log.Info("starting pserver", log.Ctx{"port": *port})
99103
err = http.Serve(l, nil)
100104
candy.Must(err)
101105
}()

go/glide.lock

Lines changed: 12 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

go/glide.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,7 @@ import:
2626
version: v1.1.0
2727
- package: github.com/alecthomas/gometalinter
2828
version: v1.2.1
29+
- package: github.com/inconshreveable/log15
30+
version: v2.13
31+
- package: github.com/go-stack/stack
32+
version: v1.6.0

go/master/c/client.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,19 @@ import (
3535
"unsafe"
3636

3737
"github.com/PaddlePaddle/Paddle/go/master"
38-
log "github.com/sirupsen/logrus"
38+
log "github.com/inconshreveable/log15"
3939
)
4040

4141
var mu sync.Mutex
4242
var handleMap = make(map[C.paddle_master_client]*master.Client)
4343
var curHandle C.paddle_master_client
4444

45+
func init() {
46+
log.Root().SetHandler(
47+
log.LvlFilterHandler(log.LvlWarn, log.CallerStackHandler("%+v", log.StderrHandler)),
48+
)
49+
}
50+
4551
func add(c *master.Client) C.paddle_master_client {
4652
mu.Lock()
4753
defer mu.Unlock()
@@ -117,7 +123,7 @@ func paddle_set_dataset(client C.paddle_master_client, path **C.char, size C.int
117123
}
118124
err := c.SetDataset(paths)
119125
if err != nil {
120-
log.Errorln(err)
126+
log.Error("error set dataset", log.Ctx{"error": err})
121127
return C.PADDLE_MASTER_ERROR
122128
}
123129

@@ -167,7 +173,7 @@ func paddle_request_save_model(client C.paddle_master_client, trainerID string,
167173
c := get(client)
168174
need, err := c.RequestSaveModel(trainerID, time.Duration(blockMS)*time.Millisecond)
169175
if err != nil {
170-
log.Errorln(err)
176+
log.Error("error request save model", log.Ctx{"error": err})
171177
return C.PADDLE_MASTER_ERROR
172178
}
173179

go/master/client.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"github.com/PaddlePaddle/Paddle/go/connection"
2222
"github.com/PaddlePaddle/recordio"
2323
"github.com/coreos/etcd/clientv3"
24-
log "github.com/sirupsen/logrus"
24+
log "github.com/inconshreveable/log15"
2525
)
2626

2727
// Client is the client of the master server.
@@ -75,7 +75,7 @@ func WithEtcd(endpoints []string, timeout time.Duration) func(*Client) error {
7575
for {
7676
err := f()
7777
if err != nil {
78-
log.Warningln(err)
78+
log.Warn("create etcd client error", log.Ctx{"error": err})
7979
} else {
8080
break
8181
}
@@ -135,13 +135,13 @@ func (c *Client) getRecords(passID int) {
135135
time.Sleep(time.Second * 3)
136136
continue
137137
}
138-
log.Errorf("getTask error: %s", err)
138+
log.Error("getTask error.", log.Ctx{"error": err})
139139
}
140140

141141
for _, chunk := range t.Chunks {
142142
f, e := os.Open(chunk.Path)
143143
if e != nil {
144-
log.Errorln(e)
144+
log.Error("error open chunk", log.Ctx{"error": e})
145145
continue
146146
}
147147

@@ -152,12 +152,15 @@ func (c *Client) getRecords(passID int) {
152152

153153
if s.Err() != nil {
154154
c.ch <- record{nil, s.Err()}
155-
log.Errorln(err, chunk.Path)
155+
log.Error(
156+
"error scan chunk",
157+
log.Ctx{"error": err, "path": chunk.Path},
158+
)
156159
}
157160

158161
err = f.Close()
159162
if err != nil {
160-
log.Errorln(err)
163+
log.Error("error close record file", log.Ctx{"error": err})
161164
}
162165
}
163166

@@ -166,7 +169,7 @@ func (c *Client) getRecords(passID int) {
166169
// correct, but a reasonable approximation.
167170
err = c.taskFinished(t.Meta.ID)
168171
if err != nil {
169-
log.Errorln(err)
172+
log.Error("task finish callback error.", log.Ctx{"error": err})
170173
}
171174
}
172175
}
@@ -179,12 +182,12 @@ func (c *Client) monitorMaster(addrCh <-chan string) {
179182
if curMaster == "" {
180183
err := c.conn.Close()
181184
if err != nil {
182-
log.Errorln(err)
185+
log.Error("close old master addr error", log.Ctx{"error": err})
183186
}
184187
} else {
185188
err := c.conn.Connect(curMaster)
186189
if err != nil {
187-
log.Errorln(err)
190+
log.Error("connect to new master addr error", log.Ctx{"error": err})
188191

189192
// connect to addr failed, set
190193
// to last known addr in order

go/master/client_internal_test.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ import (
2525
"testing"
2626
"time"
2727

28-
log "github.com/sirupsen/logrus"
29-
3028
"github.com/PaddlePaddle/Paddle/go/connection"
3129
"github.com/PaddlePaddle/recordio"
3230
)
@@ -36,10 +34,6 @@ const (
3634
chunkPerTask = 10
3735
)
3836

39-
func init() {
40-
log.SetLevel(log.ErrorLevel)
41-
}
42-
4337
func TestGetFinishTask(t *testing.T) {
4438
const path = "/tmp/master_client_test_0"
4539

0 commit comments

Comments
 (0)