• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Rui Carlos

Produzir string equivalente ao printStackTrace

8 mensagens neste tópico

Há algum método em Java que me permita atribuir a uma string o texto que é gerado através do printStackTrace de uma excepção?

O que pretendo neste momento é imprimir esse texto num ficheiro de log. Se conseguisse passar isso para uma string, ficava com o problema resolvido, mas se souberem de métodos alternativos para o fazer, também pode ser que ajude.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No printStackTrace não podes indicar uma stream?

Porque não mandas uma stream do ficheiro de log?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No printStackTrace não podes indicar uma stream?

Porque não mandas uma stream do ficheiro de log?

Parece que dá (a parte de usar uma stream já tinha visto, mas só agora é que vi como a criar a partir de um ficheiro)... A solução da string era mais versátil, mas esta também vai servir...

getMessage() não dá é tanta info como o printStackTrace

Acho que o getMessage não dá informação praticamente nenhuma...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usas o sistema de logging do Java ou usas uma biblioteca de logging externa, sendo a apache log4j a mais conhecida e usada.

O getMessage indica apenas a mensagem associada à excepção, normalmente o último ponto do código onde a excepção não foi apanhada, não é tão informativo como o registo da stack, que bem, é o registo da stack de memória afinal de contas :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Há sempre a hipótese de usar o getStackTrace() que te devolve um array de StackTraceElement. Assim tens informação de excepção bastante estruturada ou, em alternativa, podes simplesmente fazer um toString àquilo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Há sempre a hipótese de usar o getStackTrace() que te devolve um array de StackTraceElement. Assim tens informação de excepção bastante estruturada ou, em alternativa, podes simplesmente fazer um toString àquilo.

Se não me engano tentei fazer isso (usando directamente o toString), e só me mostrava um endereço de memória e pouco mais.

De qualquer forma já resolvi o problema (embora não da forma que queria, mas já funciona).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora