Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 24 additions & 3 deletions packages/shared/pkg/logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@
Cores []zapcore.Core
// EnableConsole enables console logging.
EnableConsole bool

// Encoding sets the logger's encoding. If empty, defaults to "console".
Encoding string
// EncoderConfig optionally overrides the default encoder config.
// If nil, defaults to GetConsoleEncoderConfig()

Check warning on line 40 in packages/shared/pkg/logger/logger.go

View check run for this annotation

Claude / Claude Code Review

Misleading EncoderConfig field comment

The comment on `EncoderConfig` says "If nil, defaults to GetConsoleEncoderConfig()" unconditionally, but this is only true when `Encoding` is "console" (or empty). When `Encoding` is set to any non-console value and `EncoderConfig` is nil, `NewLogger` returns an error instead — the comment should be updated to reflect this conditional behavior.
EncoderConfig *zapcore.EncoderConfig
}

func NewLogger(loggerConfig LoggerConfig) (Logger, error) {
Expand All @@ -43,15 +49,30 @@
level = zap.NewAtomicLevelAt(zap.InfoLevel)
}

// Console logging configuration
encoding := loggerConfig.Encoding
if encoding == "" {
encoding = "console"
}

if encoding != "console" && loggerConfig.EncoderConfig == nil {
return nil, fmt.Errorf("encoder config has to be provided when encoding is not console")
}

var encoderConfig zapcore.EncoderConfig
if loggerConfig.EncoderConfig != nil {
encoderConfig = *loggerConfig.EncoderConfig
} else {
encoderConfig = GetConsoleEncoderConfig()
}

config := zap.Config{
DisableStacktrace: loggerConfig.DisableStacktrace,
// Takes stacktraces more liberally
Development: true,
Sampling: nil,

Encoding: "console",
EncoderConfig: GetConsoleEncoderConfig(),
Encoding: encoding,
EncoderConfig: encoderConfig,
Level: level,
OutputPaths: []string{},
ErrorOutputPaths: []string{},
Expand Down
Loading