Skip to content

Commit 0999529

Browse files
authored
Merge pull request #743 from fungaren/fix-panic-when-config-empty
fix panic when logger or dialer is not set in canal config
2 parents bc5406a + 02563ce commit 0999529

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

canal/canal.go

+10
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"io"
7+
"net"
78
"os"
89
"regexp"
910
"strconv"
@@ -19,6 +20,7 @@ import (
1920
"github.com/go-mysql-org/go-mysql/schema"
2021
"github.com/pingcap/errors"
2122
"github.com/pingcap/parser"
23+
"github.com/siddontang/go-log/log"
2224
)
2325

2426
// Canal can sync your MySQL data into everywhere, like Elasticsearch, Redis, etc...
@@ -60,6 +62,14 @@ var ErrExcludedTable = errors.New("excluded table meta")
6062

6163
func NewCanal(cfg *Config) (*Canal, error) {
6264
c := new(Canal)
65+
if cfg.Logger == nil {
66+
streamHandler, _ := log.NewStreamHandler(os.Stdout)
67+
cfg.Logger = log.NewDefault(streamHandler)
68+
}
69+
if cfg.Dialer == nil {
70+
dialer := &net.Dialer{}
71+
cfg.Dialer = dialer.DialContext
72+
}
6373
c.cfg = cfg
6474

6575
c.ctx, c.cancel = context.WithCancel(context.Background())

0 commit comments

Comments
 (0)