package logger import ( "context" ) // Field represents a key-value pair for structured logging. // This is an alias for zap.Field to maintain compatibility with zap. type Field = interface{} // Logger defines the interface for structured logging. // It provides methods for logging at different levels with structured fields. type Logger interface { // Debug logs a message at debug level with optional fields. Debug(msg string, fields ...Field) // Info logs a message at info level with optional fields. Info(msg string, fields ...Field) // Warn logs a message at warning level with optional fields. Warn(msg string, fields ...Field) // Error logs a message at error level with optional fields. Error(msg string, fields ...Field) // With creates a child logger with the specified fields. // All subsequent log calls will include these fields. With(fields ...Field) Logger // WithContext creates a child logger with fields extracted from context. // Typically extracts request ID, user ID, and other context values. WithContext(ctx context.Context) Logger }