FullAjaxExceptionHandler always log with the method logException. It can be overwritten to change the log level, however it's not possible to set a different log level based on the cause of the error.
L401 and L438 are "unexpected" error, in the sense that throwing an Exception after the response is commited or attempting to display an error page containing errors is a programation error. Therefore these cases make sense to be logged with the SEVERE level.
Although L392 and L396 are "expected" errors in the sense that the exception handler performed as expected by redirecting to a working error page.
Ideally we should keep logging L401 and L438 as SEVERE and allow to choose the log level for L392 and L396, either by overriding logException or with a Web.xml parameter.
Fix #258: add new logException() overload with LogReason.
I added a protected enum LogReason indicating the log reason and a new logException() overload where this is passed. It's available in today's 2.4-SNAPSHOT.
Thank you for improving OmniFaces!