Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

logutil: add testcase for SlowQueryLogger.MaxDays/MaxSize/MaxBackups #30316

Merged
merged 8 commits into from
Dec 8, 2021
4 changes: 2 additions & 2 deletions util/logutil/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ func InitLogger(cfg *LogConfig) error {
log.ReplaceGlobals(gl, props)

// init dedicated logger for slow query log
SlowQueryLogger, _, err = newSlowQueryLogger(cfg)
SlowQueryLogger, _, _, err = newSlowQueryLogger(cfg)
if err != nil {
return errors.Trace(err)
}
Expand Down Expand Up @@ -157,7 +157,7 @@ func ReplaceLogger(cfg *LogConfig) error {
return errors.Trace(err)
}

SlowQueryLogger, _, err = newSlowQueryLogger(cfg)
SlowQueryLogger, _, _, err = newSlowQueryLogger(cfg)
if err != nil {
return errors.Trace(err)
}
Expand Down
15 changes: 13 additions & 2 deletions util/logutil/log_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,23 @@ func TestGrpcLoggerCreation(t *testing.T) {

func TestSlowQueryLoggerCreation(t *testing.T) {
level := "warn"
conf := NewLogConfig(level, DefaultLogFormat, "", EmptyFileLogConfig, false)
_, prop, err := newSlowQueryLogger(conf)
slowQueryFn := "slow-query.log"
fileConf := FileLogConfig{
log.FileLogConfig{
Filename: slowQueryFn,
MaxSize: 10,
MaxDays: 10,
MaxBackups: 10,
},
}
conf := NewLogConfig(level, DefaultLogFormat, slowQueryFn, fileConf, false)
_, prop, slowQueryConf, err := newSlowQueryLogger(conf)
// assert after init slow query logger, the original conf is not changed
require.Equal(t, conf.Level, level)
require.Nil(t, err)
require.Equal(t, prop.Level.String(), conf.Level)
// make sure SlowQuery.MaxDays/MaxSize/MaxBackups are same with top config.
require.Equal(t, fileConf.FileLogConfig, slowQueryConf.File)
}

func TestGlobalLoggerReplace(t *testing.T) {
Expand Down
6 changes: 3 additions & 3 deletions util/logutil/slow_query_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import (

var _pool = buffer.NewPool()

func newSlowQueryLogger(cfg *LogConfig) (*zap.Logger, *log.ZapProperties, error) {
func newSlowQueryLogger(cfg *LogConfig) (*zap.Logger, *log.ZapProperties, *log.Config, error) {

// copy the global log config to slow log config
// if the filename of slow log config is empty, slow log will behave the same as global log.
guo-shaoge marked this conversation as resolved.
Show resolved Hide resolved
Expand All @@ -40,7 +40,7 @@ func newSlowQueryLogger(cfg *LogConfig) (*zap.Logger, *log.ZapProperties, error)
// create the slow query logger
sqLogger, prop, err := log.InitLogger(&sqConfig)
if err != nil {
return nil, nil, errors.Trace(err)
return nil, nil, nil, errors.Trace(err)
}

// replace 2018-12-19-unified-log-format text encoder with slow log encoder
Expand All @@ -50,7 +50,7 @@ func newSlowQueryLogger(cfg *LogConfig) (*zap.Logger, *log.ZapProperties, error)
}))
prop.Core = newCore

return sqLogger, prop, nil
return sqLogger, prop, &sqConfig, nil
}

type slowLogEncoder struct{}
Expand Down