The name ERRORLOG is historical. It's got all the startup messages, plus the details of all the login failures (which aren't sent to the clients), plus all errors of high severity, plus any raiserror WITH LOG, plus any crashes or access violations, plus various warnings.
So it's basically everything that a DBA might need to know about the health of the instance.
But the error_reported event is fired for every user error, which could be way too verbose to write to the ERRORLOG.
You can see some of the error messages that SQL Server will log by looking at the sys.messages
DMV, where is_event_logged = 1
. This does not include informational messages logged by the system.
SELECT m.* FROM sys.messages AS m WHERE m.language_id = 1033 AND m.is_event_logged = 1 ORDER BY m.message_id;