Skip to content

Commit 31abb18

Browse files
committed
Move logger to internal package.
1 parent d89a58a commit 31abb18

File tree

11 files changed

+68
-42
lines changed

11 files changed

+68
-42
lines changed

cluster.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"sync/atomic"
77
"time"
88

9+
"gopkg.in/redis.v4/internal"
910
"gopkg.in/redis.v4/internal/hashtag"
1011
"gopkg.in/redis.v4/internal/pool"
1112
)
@@ -273,13 +274,13 @@ func (c *ClusterClient) reloadSlots() {
273274

274275
client, err := c.randomClient()
275276
if err != nil {
276-
Logger.Printf("randomClient failed: %s", err)
277+
internal.Logf("randomClient failed: %s", err)
277278
return
278279
}
279280

280281
slots, err := client.ClusterSlots().Result()
281282
if err != nil {
282-
Logger.Printf("ClusterSlots failed: %s", err)
283+
internal.Logf("ClusterSlots failed: %s", err)
283284
return
284285
}
285286
c.setSlots(slots)
@@ -306,14 +307,14 @@ func (c *ClusterClient) reaper(frequency time.Duration) {
306307
for _, client := range c.getClients() {
307308
nn, err := client.connPool.(*pool.ConnPool).ReapStaleConns()
308309
if err != nil {
309-
Logger.Printf("ReapStaleConns failed: %s", err)
310+
internal.Logf("ReapStaleConns failed: %s", err)
310311
} else {
311312
n += nn
312313
}
313314
}
314315

315316
s := c.PoolStats()
316-
Logger.Printf(
317+
internal.Logf(
317318
"reaper: removed %d stale conns (TotalConns=%d FreeConns=%d Requests=%d Hits=%d Timeouts=%d)",
318319
n, s.TotalConns, s.FreeConns, s.Requests, s.Hits, s.Timeouts,
319320
)

commands.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"io"
55
"strconv"
66
"time"
7+
8+
"gopkg.in/redis.v4/internal"
79
)
810

911
func formatInt(i int64) string {
@@ -31,7 +33,7 @@ func usePrecise(dur time.Duration) bool {
3133

3234
func formatMs(dur time.Duration) string {
3335
if dur > 0 && dur < time.Millisecond {
34-
Logger.Printf(
36+
internal.Logf(
3537
"specified duration is %s, but minimal supported value is %s",
3638
dur, time.Millisecond,
3739
)
@@ -41,7 +43,7 @@ func formatMs(dur time.Duration) string {
4143

4244
func formatSec(dur time.Duration) string {
4345
if dur > 0 && dur < time.Second {
44-
Logger.Printf(
46+
internal.Logf(
4547
"specified duration is %s, but minimal supported value is %s",
4648
dur, time.Second,
4749
)

export_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ func (c *PubSub) Pool() pool.Pooler {
1414
return c.base.connPool
1515
}
1616

17-
func SetReceiveMessageTimeout(d time.Duration) {
18-
receiveMessageTimeout = d
17+
func (c *PubSub) ReceiveMessageTimeout(timeout time.Duration) (*Message, error) {
18+
return c.receiveMessage(timeout)
1919
}

internal/log.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package internal
2+
3+
import (
4+
"fmt"
5+
"io/ioutil"
6+
"log"
7+
)
8+
9+
var Debug bool
10+
11+
var Logger = log.New(ioutil.Discard, "redis: ", log.LstdFlags)
12+
13+
func Debugf(s string, args ...interface{}) {
14+
if !Debug {
15+
return
16+
}
17+
Logger.Output(2, fmt.Sprintf(s, args...))
18+
}
19+
20+
func Logf(s string, args ...interface{}) {
21+
Logger.Output(2, fmt.Sprintf(s, args...))
22+
}

internal/pool/pool.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@ package pool
33
import (
44
"errors"
55
"fmt"
6-
"io/ioutil"
7-
"log"
86
"net"
97
"sync"
108
"sync/atomic"
119
"time"
1210

1311
"gopkg.in/bsm/ratelimit.v1"
14-
)
1512

16-
var Logger = log.New(ioutil.Discard, "redis: ", log.LstdFlags)
13+
"gopkg.in/redis.v4/internal"
14+
)
1715

1816
var (
1917
ErrClosed = errors.New("redis: client is closed")
@@ -210,7 +208,7 @@ func (p *ConnPool) Put(cn *Conn) error {
210208
if cn.Rd.Buffered() != 0 {
211209
b, _ := cn.Rd.Peek(cn.Rd.Buffered())
212210
err := fmt.Errorf("connection has unread data: %q", b)
213-
Logger.Print(err)
211+
internal.Logf(err.Error())
214212
return p.Remove(cn, err)
215213
}
216214
p.freeConnsMu.Lock()
@@ -342,11 +340,11 @@ func (p *ConnPool) reaper(frequency time.Duration) {
342340
}
343341
n, err := p.ReapStaleConns()
344342
if err != nil {
345-
Logger.Printf("ReapStaleConns failed: %s", err)
343+
internal.Logf("ReapStaleConns failed: %s", err)
346344
continue
347345
}
348346
s := p.Stats()
349-
Logger.Printf(
347+
internal.Logf(
350348
"reaper: removed %d stale conns (TotalConns=%d FreeConns=%d Requests=%d Hits=%d Timeouts=%d)",
351349
n, s.TotalConns, s.FreeConns, s.Requests, s.Hits, s.Timeouts,
352350
)

pubsub.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@ import (
55
"net"
66
"time"
77

8+
"gopkg.in/redis.v4/internal"
89
"gopkg.in/redis.v4/internal/pool"
910
)
1011

11-
var receiveMessageTimeout = 5 * time.Second
12-
1312
// Posts a message to the given channel.
1413
func (c *Client) Publish(channel, message string) *IntCmd {
1514
req := NewIntCmd("PUBLISH", channel, message)
@@ -241,9 +240,13 @@ func (c *PubSub) Receive() (interface{}, error) {
241240
// messages. It automatically reconnects to Redis Server and resubscribes
242241
// to channels in case of network errors.
243242
func (c *PubSub) ReceiveMessage() (*Message, error) {
243+
return c.receiveMessage(5 * time.Second)
244+
}
245+
246+
func (c *PubSub) receiveMessage(timeout time.Duration) (*Message, error) {
244247
var errNum uint
245248
for {
246-
msgi, err := c.ReceiveTimeout(receiveMessageTimeout)
249+
msgi, err := c.ReceiveTimeout(timeout)
247250
if err != nil {
248251
if !isNetworkError(err) {
249252
return nil, err
@@ -254,7 +257,7 @@ func (c *PubSub) ReceiveMessage() (*Message, error) {
254257
if netErr, ok := err.(net.Error); ok && netErr.Timeout() {
255258
err := c.Ping("")
256259
if err != nil {
257-
Logger.Printf("PubSub.Ping failed: %s", err)
260+
internal.Logf("PubSub.Ping failed: %s", err)
258261
}
259262
}
260263
} else {
@@ -294,12 +297,12 @@ func (c *PubSub) resubscribe() {
294297
}
295298
if len(c.channels) > 0 {
296299
if err := c.Subscribe(c.channels...); err != nil {
297-
Logger.Printf("Subscribe failed: %s", err)
300+
internal.Logf("Subscribe failed: %s", err)
298301
}
299302
}
300303
if len(c.patterns) > 0 {
301304
if err := c.PSubscribe(c.patterns...); err != nil {
302-
Logger.Printf("PSubscribe failed: %s", err)
305+
internal.Logf("PSubscribe failed: %s", err)
303306
}
304307
}
305308
}

pubsub_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,7 @@ var _ = Describe("PubSub", func() {
256256
})
257257

258258
It("should ReceiveMessage after timeout", func() {
259-
timeout := time.Second
260-
redis.SetReceiveMessageTimeout(timeout)
259+
timeout := 100 * time.Millisecond
261260

262261
pubsub, err := client.Subscribe("mychannel")
263262
Expect(err).NotTo(HaveOccurred())
@@ -276,7 +275,7 @@ var _ = Describe("PubSub", func() {
276275
Expect(n).To(Equal(int64(1)))
277276
}()
278277

279-
msg, err := pubsub.ReceiveMessage()
278+
msg, err := pubsub.ReceiveMessageTimeout(timeout)
280279
Expect(err).NotTo(HaveOccurred())
281280
Expect(msg.Channel).To(Equal("mychannel"))
282281
Expect(msg.Payload).To(Equal("hello"))

redis.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,16 @@ package redis // import "gopkg.in/redis.v4"
22

33
import (
44
"fmt"
5-
"io/ioutil"
65
"log"
76

7+
"gopkg.in/redis.v4/internal"
88
"gopkg.in/redis.v4/internal/pool"
99
)
1010

11-
// Deprecated. Use SetLogger instead.
12-
var Logger = log.New(ioutil.Discard, "redis: ", log.LstdFlags)
11+
var Logger *log.Logger
1312

1413
func SetLogger(logger *log.Logger) {
15-
Logger = logger
16-
pool.Logger = logger
14+
internal.Logger = logger
1715
}
1816

1917
type baseClient struct {

ring.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"sync"
77
"time"
88

9+
"gopkg.in/redis.v4/internal"
910
"gopkg.in/redis.v4/internal/consistenthash"
1011
"gopkg.in/redis.v4/internal/hashtag"
1112
"gopkg.in/redis.v4/internal/pool"
@@ -204,7 +205,7 @@ func (ring *Ring) heartbeat() {
204205
for _, shard := range ring.shards {
205206
err := shard.Client.Ping().Err()
206207
if shard.Vote(err == nil || err == pool.ErrPoolTimeout) {
207-
Logger.Printf("ring shard state changed: %s", shard)
208+
internal.Logf("ring shard state changed: %s", shard)
208209
rebalance = true
209210
}
210211
}

sentinel.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"sync"
99
"time"
1010

11+
"gopkg.in/redis.v4/internal"
1112
"gopkg.in/redis.v4/internal/pool"
1213
)
1314

@@ -165,11 +166,11 @@ func (d *sentinelFailover) MasterAddr() (string, error) {
165166
if d.sentinel != nil {
166167
addr, err := d.sentinel.GetMasterAddrByName(d.masterName).Result()
167168
if err != nil {
168-
Logger.Printf("sentinel: GetMasterAddrByName %q failed: %s", d.masterName, err)
169+
internal.Logf("sentinel: GetMasterAddrByName %q failed: %s", d.masterName, err)
169170
d._resetSentinel()
170171
} else {
171172
addr := net.JoinHostPort(addr[0], addr[1])
172-
Logger.Printf("sentinel: %q addr is %s", d.masterName, addr)
173+
internal.Logf("sentinel: %q addr is %s", d.masterName, addr)
173174
return addr, nil
174175
}
175176
}
@@ -188,7 +189,7 @@ func (d *sentinelFailover) MasterAddr() (string, error) {
188189
})
189190
masterAddr, err := sentinel.GetMasterAddrByName(d.masterName).Result()
190191
if err != nil {
191-
Logger.Printf("sentinel: GetMasterAddrByName %q failed: %s", d.masterName, err)
192+
internal.Logf("sentinel: GetMasterAddrByName %q failed: %s", d.masterName, err)
192193
sentinel.Close()
193194
continue
194195
}
@@ -198,7 +199,7 @@ func (d *sentinelFailover) MasterAddr() (string, error) {
198199

199200
d.setSentinel(sentinel)
200201
addr := net.JoinHostPort(masterAddr[0], masterAddr[1])
201-
Logger.Printf("sentinel: %q addr is %s", d.masterName, addr)
202+
internal.Logf("sentinel: %q addr is %s", d.masterName, addr)
202203
return addr, nil
203204
}
204205

@@ -230,7 +231,7 @@ func (d *sentinelFailover) _resetSentinel() error {
230231
func (d *sentinelFailover) discoverSentinels(sentinel *sentinelClient) {
231232
sentinels, err := sentinel.Sentinels(d.masterName).Result()
232233
if err != nil {
233-
Logger.Printf("sentinel: Sentinels %q failed: %s", d.masterName, err)
234+
internal.Logf("sentinel: Sentinels %q failed: %s", d.masterName, err)
234235
return
235236
}
236237
for _, sentinel := range sentinels {
@@ -240,7 +241,7 @@ func (d *sentinelFailover) discoverSentinels(sentinel *sentinelClient) {
240241
if key == "name" {
241242
sentinelAddr := vals[i+1].(string)
242243
if !contains(d.sentinelAddrs, sentinelAddr) {
243-
Logger.Printf(
244+
internal.Logf(
244245
"sentinel: discovered new %q sentinel: %s",
245246
d.masterName, sentinelAddr,
246247
)
@@ -268,7 +269,7 @@ func (d *sentinelFailover) closeOldConns(newMaster string) {
268269
"sentinel: closing connection to the old master %s",
269270
cn.RemoteAddr(),
270271
)
271-
Logger.Print(err)
272+
internal.Logf(err.Error())
272273
d.pool.Remove(cn, err)
273274
} else {
274275
cnsToPut = append(cnsToPut, cn)
@@ -286,15 +287,15 @@ func (d *sentinelFailover) listen(sentinel *sentinelClient) {
286287
if pubsub == nil {
287288
pubsub = sentinel.PubSub()
288289
if err := pubsub.Subscribe("+switch-master"); err != nil {
289-
Logger.Printf("sentinel: Subscribe failed: %s", err)
290+
internal.Logf("sentinel: Subscribe failed: %s", err)
290291
d.resetSentinel()
291292
return
292293
}
293294
}
294295

295296
msg, err := pubsub.ReceiveMessage()
296297
if err != nil {
297-
Logger.Printf("sentinel: ReceiveMessage failed: %s", err)
298+
internal.Logf("sentinel: ReceiveMessage failed: %s", err)
298299
pubsub.Close()
299300
d.resetSentinel()
300301
return
@@ -304,12 +305,12 @@ func (d *sentinelFailover) listen(sentinel *sentinelClient) {
304305
case "+switch-master":
305306
parts := strings.Split(msg.Payload, " ")
306307
if parts[0] != d.masterName {
307-
Logger.Printf("sentinel: ignore new %s addr", parts[0])
308+
internal.Logf("sentinel: ignore new %s addr", parts[0])
308309
continue
309310
}
310311

311312
addr := net.JoinHostPort(parts[3], parts[4])
312-
Logger.Printf(
313+
internal.Logf(
313314
"sentinel: new %q addr is %s",
314315
d.masterName, addr,
315316
)

0 commit comments

Comments
 (0)