Grails 5 WAR deployment: startup failure logs missing from the application log
0 reputation · 14 Sept 2024, 12:40 UTC
We are moving a Grails 5 application from the executable JAR to a WAR deployed on an external Tomcat, and a recent deployment failed silently: the application log showed only a wrapped BeanCreationException and then nothing, leaving us unsure where the root cause went.
In the executable JAR mode, the failure was visible in stdout with a full stack trace. Under Tomcat, the same failure appears to be split between catalina.out, the localhost log, and the app log, and the default stack trace filtering hides the underlying cause.
The uncertainty is whether this is a logging configuration issue (logback.groovy not loading, log levels), a container-vs-application log split, or a build issue (container dependency still compile-scoped instead of provided). We need a documented, version-appropriate way to get the full root cause when the WAR deployment fails.
- For Grails 5, which configuration change reliably disables stack trace filtering and surfaces the original exception in the app log?
- When deploying as a WAR, how should we separate container logs from application logs to confirm whether the failure is in Tomcat or the ApplicationContext?
- Should we standardize on the embedded JAR for diagnostics, or is there a supported way to make WAR deployments equally observable?