From 1a300120146a38db60f0629f979cc82cf4e877c9 Mon Sep 17 00:00:00 2001 From: zhagnlu <1542303831@qq.com> Date: Mon, 25 Aug 2025 17:55:52 +0800 Subject: [PATCH] enhance: support trace log level for segcore (#44003) #43230 Signed-off-by: luzhang Co-authored-by: luzhang --- cmd/roles/roles.go | 8 +++++++- configs/milvus.yaml | 2 +- pkg/log/log.go | 6 +++++- pkg/util/paramtable/component_param.go | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/cmd/roles/roles.go b/cmd/roles/roles.go index b46ad7e099..dddc526e52 100644 --- a/cmd/roles/roles.go +++ b/cmd/roles/roles.go @@ -23,6 +23,7 @@ import ( "os/signal" "path/filepath" "runtime/debug" + "strings" "sync" "syscall" "time" @@ -244,7 +245,12 @@ func (mr *MilvusRoles) setupLogger() { if !event.HasUpdated || event.EventType == config.DeleteType { return } - logLevel, err := zapcore.ParseLevel(event.Value) + v := event.Value + // trace is not a valid log level for non-segcore part, so we convert it to debug + if strings.EqualFold(v, "trace") { + v = "debug" + } + logLevel, err := zapcore.ParseLevel(v) if err != nil { log.Warn("failed to parse log level", zap.Error(err)) return diff --git a/configs/milvus.yaml b/configs/milvus.yaml index ef2cf7ccf1..6771f5e2dd 100644 --- a/configs/milvus.yaml +++ b/configs/milvus.yaml @@ -852,7 +852,7 @@ msgChannel: # Configures the system log output. log: - # Milvus log level. Option: debug, info, warn, error, panic, and fatal. + # Milvus log level. Option: trace, debug, info, warn, error, panic, and fatal. # It is recommended to use debug level under test and development environments, and info level in production environment. level: info file: diff --git a/pkg/log/log.go b/pkg/log/log.go index 2ef1c95ed1..946904189b 100644 --- a/pkg/log/log.go +++ b/pkg/log/log.go @@ -92,7 +92,11 @@ func InitLogger(cfg *Config, opts ...zap.Option) (*zap.Logger, *ZapProperties, e } replaceLeveledLoggers(debugL) level := zapcore.DebugLevel - if err := level.UnmarshalText([]byte(cfg.Level)); err != nil { + parsedLevel := cfg.Level + if strings.EqualFold(parsedLevel, "trace") { + parsedLevel = "debug" + } + if err := level.UnmarshalText([]byte(parsedLevel)); err != nil { return nil, nil, err } r.Level.SetLevel(level) diff --git a/pkg/util/paramtable/component_param.go b/pkg/util/paramtable/component_param.go index 5bc31c6b6a..b2a554e23f 100644 --- a/pkg/util/paramtable/component_param.go +++ b/pkg/util/paramtable/component_param.go @@ -1389,7 +1389,7 @@ func (l *logConfig) init(base *BaseTable) { Key: "log.level", DefaultValue: "info", Version: "2.0.0", - Doc: `Milvus log level. Option: debug, info, warn, error, panic, and fatal. + Doc: `Milvus log level. Option: trace, debug, info, warn, error, panic, and fatal. It is recommended to use debug level under test and development environments, and info level in production environment.`, Export: true, }