How to display Most Recently Read 10 Posts by a logged in user in wordpress

At first you need to set a meta value when a post is visited using this way

if( is_user_logged_in() ) {

    update_post_meta( $post_id, 'post_readed_by', get_current_user_id() );
}

Then you can get the recent visited posts

<?php 
$args = array(
    'posts_per_page'   => 10,
    'meta_key'         => 'post_readed_by',
    'meta_value'       => get_current_user_id(),
    'post_type'        => 'post',
    'post_status'      => 'publish',
);
$posts_array = get_posts( $args ); ?>

You can use the $posts_array variable this way

foreach ( $posts_array as $post ) : setup_postdata( $post );

    the_title();
    if ( has_post_thumbnail() ) {
        the_post_thumbnail();
    } 
    the_content();

endforeach; 
wp_reset_postdata();

Hope you understand how to manipulate these