Gostaria de discutir um problema que está acontecendo nas aplicações desenvolvidas na empresa.
Muitos dos nossos sistemas são distribuídos, em cluster, e a aplicação é dividida entre camada web (JSF) e de negócio (EJB 3). Algumas aplicações chegam a ter mais de 10 containers na camada de negócio.
O problema está na hora de rastrear qual erro aconteceu e onde aconteceu.
Suponha que o usuário navegando na aplicação recebeu um erro genérico capturado pelo exceptionhandler. Como a aplicação possui vários containers, ir pesquisando todos os logs dos containers é um trabalho chato e demorado.
Pensando nisso, foi criado um sistema de log onde a exceção lançada contém a data e o inetaddress.getHostName() criptografado, e esta informação é exibida para o usuário na forma “Aconteceu o erro XXXXX (código GKGDSAUGJHSGDYSIJ)”. Quando o usuário manda este código para o time de desenvolvimento, ele decodifica a informação e sabe a data, a hora, e em qual servidor o problema aconteceu. Esta informação também é bastante útil em ambientes de desenvolvimento/homologação/testes.
Como vocês rastreiam o erro para saber em qual container ele aconteceu?
Como vocês codificam as informações para serem exibidas para o usuário? Que informações são codificadas?
Gostaria de ouvir a opnião de vocês.
Abraço.