I have done some optimization for audit4j after using this for some time, including
print precise argument name instead of arg0, 1.... in conjunction with jdk8 feature
deep size check to avoid infinite recursion (manual skip http request/response/session heavy objects, maybe you can expose configuration to skip user custom class , eg joda LocalDateTime, LocalDate )
release resource to avoid too many open files in Linux , this is fatal, there was an existed issue opened raised by someone found in solaris
I have done some optimization for audit4j after using this for some time, including