A Report of Logins on the Site
The DB log should log user logins. It usually appears as "Session created for [user name]".

Alternatively, you can create an admin-only view of users and the time they last login and/or the last time they accessed. iirc, users have access and login fields in the DB which are timestamps that represent last page access while logged in and login time, respectively. I believe they are exposed to Views.

For reports, there is Views Data Export which adds a display to a View, exposing itself as an endpoint from which you can download the data. Exports in various formats, most especially CSV. 

However, for the views approach mentioned, it will only display the latest data. This doesn't do historical record-keeping.