refactor(logger): replace logrus with stdlib log/slog
Drop the external github.com/sirupsen/logrus dependency in favor of Go's standard log/slog package (available since Go 1.21). The core/logger.Logger interface is preserved unchanged — this is a pure implementation swap. Key changes: - slogLogger replaces logrusLogger, backed by slog.Logger + slog.LevelVar - Custom levelTrace (-8) and levelFatal (+12) constants extend slog's built-in 4 levels to cover the 6-level logrus-compatible range - replaceAttr normalises output: lowercase level names and RFC 3339 timestamps with milliseconds (matches previous logrus JSON format) - Shared *slog.LevelVar ensures WithFields clones inherit parent level - Level guard (early return) in log/logf avoids wasted fmt.Sprint/Sprintf when the message level is below the configured threshold - Documented the stack depth assumption for the caller skip=3 frame Test coverage (14 tests, all passing with -race): - convertLevel/revertLevel round-trip for all 6 levels - levelString for all levels including custom trace/fatal - replaceAttr timestamp format, level name, groups passthrough - caller format, level guard, WithFields, IsLevelEnabled, GetLevel
This commit is contained in:
@@ -30,7 +30,6 @@ require (
|
||||
github.com/quic-go/webtransport-go v0.10.0
|
||||
github.com/rs/xid v1.3.0
|
||||
github.com/shadowsocks/go-shadowsocks2 v0.1.5
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8
|
||||
github.com/spf13/viper v1.19.0
|
||||
github.com/stretchr/testify v1.11.1
|
||||
@@ -57,6 +56,8 @@ require (
|
||||
gvisor.dev/gvisor v0.0.0-20250523182742-eede7a881b20
|
||||
)
|
||||
|
||||
require github.com/sirupsen/logrus v1.9.3 // indirect
|
||||
|
||||
require (
|
||||
github.com/alessio/shellescape v1.4.1 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
|
||||
Reference in New Issue
Block a user