O que você precisa é aplicar técnicas de AOP em cima de suas classes. O Spring Framework tem um advice que se chama After-throwing, que é executado sempre que uma classe dispara uma excessão. Outra opção seria usar o advice do tipo Around, que vai pegar o antes e o depois da execução de cada método seu (é o que o Spring Security faz).
Curiosamente, a documentação a respeito de AOP relativa ao Grails é rara. Mas você pode aplicar estas técnicas sobrescrevendo os métodos de execução do GroovyObject das classes que pretende monitorar.
Se quiser monitorar apenas a ocorrência de erros, existe um plugin fantástico para o Grails chamado Java Melody
Claudio, nesse post tem um exemplo de uso do Spring AOP numa aplicação Grails, da uma olhada: http://joasgarcia.com/grails-executando-metodos-apenas-em-producao-usando-aop/
Nele eu uso o Around Advice, mas como Kiko falou, o After-throwing resolveria o seu problema. Essa documentação explica como funciona esse tipo de advice: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-schema-advice-after-throwing