Can I alter the length of the ERROR_MESSAGE() function?

I would like to capture error messages into a table instead of a log file. I have a proof of concept working, but it leverages the built-in ERROR_MESSAGE() function that seems to be limited to only 512 bytes.

For example: I created a script in the CATCH portion of the job that says:

PRINT(ERROR_MESSAGE());

it will only return up to 512 characters from the error log. I would like to see the entire thing. Is this possible?