219dd51548
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