Skip to content

Commit 909386f

Browse files
committed
go-mysqlbinlog: allow configuring logger
1 parent 28d45ba commit 909386f

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

cmd/go-mysqlbinlog/main.go

+16
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"context"
88
"flag"
99
"fmt"
10+
"log/slog"
1011
"os"
1112

1213
"github.com/pingcap/errors"
@@ -31,6 +32,8 @@ var (
3132
backupPath = flag.String("backup_path", "", "backup path to store binlog files")
3233

3334
rawMode = flag.Bool("raw", false, "Use raw mode")
35+
format = flag.String("format", "plain", "log format")
36+
verbose = flag.Bool("verbose", false, "verbose logging")
3437
)
3538

3639
func main() {
@@ -50,6 +53,19 @@ func main() {
5053
MaxReconnectAttempts: 10,
5154
}
5255

56+
logOpts := &slog.HandlerOptions{
57+
AddSource: *verbose,
58+
}
59+
60+
switch *format {
61+
case "json":
62+
cfg.Logger = slog.New(slog.NewJSONHandler(os.Stderr, logOpts))
63+
case "plain":
64+
cfg.Logger = slog.New(slog.NewTextHandler(os.Stderr, logOpts))
65+
default:
66+
panic("unsupported log format")
67+
}
68+
5369
err := mysql.ValidateFlavor(*flavor)
5470
if err != nil {
5571
fmt.Printf("Flavor error: %v\n", errors.ErrorStack(err))

0 commit comments

Comments
 (0)