Capturar erros da aplicação

Gostaria de armazenar os erros que ocorrem no meu sistema num arquivo log. Testei o log4j e funciona mas consigo somente chamando o log dentro dos try/catch. O que eu gostaria mesmo é semelhante ao listner do java, que exibe o erro em tempo de execução mesmo fora de try/catch. Tem como fazer isso ?

Obrigado

Não entendi o que você quer fazer.

Achei o seguinte:

[code]public static Logger logger = Logger.getLogger(Login.class);

    Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
        public void uncaughtException(Thread t, Throwable ex) {
            //System.out.println("You crashed thread " + t.getName());
            //System.out.println("Exception was: " + ex.toString());
            logger.error("", ex);
        }
    });

[/code]

Coloquei na minha classe principal e ela capturou o erro ao chamar o método de outra classe a partir dela. O método acima captaria erros de toda minha aplicação ? Vou fazer alguns testes enquanto.

Ahhh entendi

Tipo assim, as excessões que não forem tratadas, você quer que esse código grave em um log …

Eh, nunca tinha pensado nisso :?
Mas acho que todas excessões deveriam ser tratadas… daí você grava no log

No caso de alguma excessão inexperada isso deve ser útil né :smiley:

Esse código pega todos erros não tratados.