There's no need for a plugin here.
Craft sets a notice flash message by default on login/logout that you can check for:
Logged in.
(If there is an error it will return the error (and your form with field errors) to the page as well.
If you want to check explicitly for these messages anywhere else (e.g. where your login form redirects to) - you could:
{% set message = craft.session.getFlash( 'notice' ) %}
{% if message == "Logged In." %}
{# Do whatever #}
{% endif %}
In terms of error handling, generally you will stay on the login page and if there was an error print that our under the form so they can try again. In simplest form, you just need to do this:
{% if errorMessage is defined %}
<p>{{ errorMessage }}</p>
{% endif %}
This is documented here:
https://craftcms.com/docs/templating/login-form