Skip to content

Commit

Permalink
lightning: emit tidb log by change FilterCore to only allow matched p…
Browse files Browse the repository at this point in the history
…ackages (#30700)
  • Loading branch information
glorv authored Dec 16, 2021
1 parent 43caa02 commit 5eac82b
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 16 deletions.
2 changes: 1 addition & 1 deletion br/pkg/lightning/backend/local/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -883,7 +883,7 @@ func (e *Engine) loadEngineMeta() error {
jsonBytes, closer, err := e.db.Get(engineMetaKey)
if err != nil {
if err == pebble.ErrNotFound {
log.L().Debug("local db missing engine meta", zap.Stringer("uuid", e.UUID), zap.Error(err))
log.L().Debug("local db missing engine meta", zap.Stringer("uuid", e.UUID), log.ShortError(err))
return nil
}
return err
Expand Down
12 changes: 6 additions & 6 deletions br/pkg/lightning/log/filter.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ type FilterCore struct {
filters []string
}

// NewFilterCore returns a FilterCore.
// NewFilterCore returns a FilterCore, only logs under allowPackages will be written.
//
// Example, filter TiDB's log, `NewFilterCore(core, "github.com/pingcap/tidb/")`.
// Example, only write br's log and ignore any other, `NewFilterCore(core, "github.com/pingcap/tidb/br/")`.
// Note, must set AddCaller() to the logger.
func NewFilterCore(core zapcore.Core, filteredPackages ...string) *FilterCore {
func NewFilterCore(core zapcore.Core, allowPackages ...string) *FilterCore {
return &FilterCore{
Core: core,
filters: filteredPackages,
filters: allowPackages,
}
}

Expand All @@ -50,8 +50,8 @@ func (f *FilterCore) Write(entry zapcore.Entry, fields []zapcore.Field) error {
for i := range f.filters {
// Caller.Function is a package path-qualified function name.
if strings.Contains(entry.Caller.Function, f.filters[i]) {
return nil
return f.Core.Write(entry, fields)
}
}
return f.Core.Write(entry, fields)
return nil
}
13 changes: 5 additions & 8 deletions br/pkg/lightning/log/filter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ func (s *testFilterSuite) TestFilter(c *C) {
)

logger, buffer = log.MakeTestLogger(zap.WrapCore(func(c zapcore.Core) zapcore.Core {
return log.NewFilterCore(c, "github.com/pingcap/tidb/br/")
return log.NewFilterCore(c, "github.com/pingcap/br/")
}), zap.AddCaller())
logger.Warn("the message", zap.Int("number", 123456), zap.Ints("array", []int{7, 8, 9}))
c.Assert(buffer.Stripped(), HasLen, 0)

logger, buffer = log.MakeTestLogger(zap.WrapCore(func(c zapcore.Core) zapcore.Core {
return log.NewFilterCore(c, "github.com/pingcap/br/").With([]zap.Field{zap.String("a", "b")})
return log.NewFilterCore(c, "github.com/pingcap/tidb/br/").With([]zap.Field{zap.String("a", "b")})
}), zap.AddCaller())
logger.Warn("the message", zap.Int("number", 123456), zap.Ints("array", []int{7, 8, 9}))
c.Assert(
Expand All @@ -40,7 +40,7 @@ func (s *testFilterSuite) TestFilter(c *C) {
)

logger, buffer = log.MakeTestLogger(zap.WrapCore(func(c zapcore.Core) zapcore.Core {
return log.NewFilterCore(c, "github.com/pingcap/tidb/br/").With([]zap.Field{zap.String("a", "b")})
return log.NewFilterCore(c, "github.com/pingcap/br/").With([]zap.Field{zap.String("a", "b")})
}), zap.AddCaller())
logger.Warn("the message", zap.Int("number", 123456), zap.Ints("array", []int{7, 8, 9}))
c.Assert(buffer.Stripped(), HasLen, 0)
Expand All @@ -49,11 +49,8 @@ func (s *testFilterSuite) TestFilter(c *C) {
logger, buffer = log.MakeTestLogger(zap.WrapCore(func(c zapcore.Core) zapcore.Core {
return log.NewFilterCore(c, "github.com/pingcap/check/").With([]zap.Field{zap.String("a", "b")})
}), zap.AddCaller())
logger.Warn("the message", zap.String("stack", "github.com/pingcap/check/"))
c.Assert(
buffer.Stripped(), Equals,
`{"$lvl":"WARN","$msg":"the message","a":"b","stack":"github.com/pingcap/check/"}`,
)
logger.Warn("the message", zap.String("stack", "github.com/pingcap/tidb/br/"))
c.Assert(buffer.Stripped(), HasLen, 0)
}

// PASS: filter_test.go:82: testFilterSuite.BenchmarkFilterRegexMatchString 1000000 1163 ns/op
Expand Down
2 changes: 1 addition & 1 deletion br/pkg/lightning/log/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ func InitLogger(cfg *Config, tidbLoglevel string) error {
}
filterTiDBLog := zap.WrapCore(func(core zapcore.Core) zapcore.Core {
// Filter logs from TiDB and PD.
return NewFilterCore(core, "github.com/tikv/pd/")
return NewFilterCore(core, "github.com/pingcap/tidb/br/")
})
// "-" is a special config for log to stdout.
if len(cfg.File) > 0 && cfg.File != "-" {
Expand Down

0 comments on commit 5eac82b

Please sign in to comment.