@@ -470,6 +470,12 @@ func (c *PubSub) ChannelWithSubscriptions(_ context.Context, size int) <-chan in
470
470
471
471
type ChannelOption func (c * channel )
472
472
473
+ func WithLogger (logger internal.Logging ) ChannelOption {
474
+ return func (c * channel ) {
475
+ c .logger = logger
476
+ }
477
+ }
478
+
473
479
// WithChannelSize specifies the Go chan size that is used to buffer incoming messages.
474
480
//
475
481
// The default is 100 messages.
@@ -510,6 +516,8 @@ type channel struct {
510
516
chanSize int
511
517
chanSendTimeout time.Duration
512
518
checkInterval time.Duration
519
+
520
+ logger internal.Logging
513
521
}
514
522
515
523
func newChannel (pubSub * PubSub , opts ... ChannelOption ) * channel {
@@ -519,6 +527,7 @@ func newChannel(pubSub *PubSub, opts ...ChannelOption) *channel {
519
527
chanSize : 100 ,
520
528
chanSendTimeout : time .Minute ,
521
529
checkInterval : 3 * time .Second ,
530
+ logger : internal .Logger ,
522
531
}
523
532
for _ , opt := range opts {
524
533
opt (c )
@@ -602,12 +611,12 @@ func (c *channel) initMsgChan() {
602
611
<- timer .C
603
612
}
604
613
case <- timer .C :
605
- internal . Logger .Printf (
606
- ctx , "redis: %s channel is full for %s (message is dropped)" ,
614
+ c . logger .Printf (
615
+ ctx , "redis: %+v channel is full for %s (message is dropped)" ,
607
616
c , c .chanSendTimeout )
608
617
}
609
618
default :
610
- internal . Logger .Printf (ctx , "redis: unknown message type: %T" , msg )
619
+ c . logger .Printf (ctx , "redis: unknown message type: %T" , msg )
611
620
}
612
621
}
613
622
}()
@@ -656,12 +665,12 @@ func (c *channel) initAllChan() {
656
665
<- timer .C
657
666
}
658
667
case <- timer .C :
659
- internal . Logger .Printf (
660
- ctx , "redis: %s channel is full for %s (message is dropped)" ,
668
+ c . logger .Printf (
669
+ ctx , "redis: %+v channel is full for %s (message is dropped)" ,
661
670
c , c .chanSendTimeout )
662
671
}
663
672
default :
664
- internal . Logger .Printf (ctx , "redis: unknown message type: %T" , msg )
673
+ c . logger .Printf (ctx , "redis: unknown message type: %T" , msg )
665
674
}
666
675
}
667
676
}()
0 commit comments