¿Cómo registro un seguimiento de pila usando la clase Logger de Java?

Estoy usando la Loggerclase de Java . Quiero pasar ex.printStackTrace()en Logger.log(loglevel, String), pero printStackTrace()los rendimientos void. Por lo tanto, no puedo pasar e imprimir el seguimiento de la pila de la excepción.

¿Hay alguna manera de que pueda convertir voiden String, o hay otros métodos para imprimir toda la traza de la pila de excepciones?

Respuesta 1

También otra alternativa sería:

import org.apache.commons.lang3.exception.ExceptionUtils;

log.error("Exception : "+ExceptionUtils.getStackTrace(exception));
Respuesta: 2

No puedes convertirte voiden String; No existe tal conversión. voidno devuelve nada , por lo que no tiene valor para recuperar.

Lo que probablemente quiera hacer es recibir el mensaje de la excepción a través de ex.getMessage().

Respuesta: 3

Con el siguiente formato puede tener el seguimiento de la pila:

java.util.logging.SimpleFormatter.format=%1$tF %1$tT [%4$-7s][%2$s] %5$s %6$s%n

El punto en este patrón es% 6 $ s. Imprimirá el seguimiento de la pila.

Respuesta: 4

Hay un método printStackTrace sobrecargado que admite un PrintWriter.

Puedes hacer algo como esto

Writer buffer = new StringWriter();
PrintWriter pw = new PrintWriter(buffer);
ex.printStackTrace(pw);
Logger.log(loglevel, buffer.toString());
Respuesta: 5

Como dice Makoto, probablemente quieras hacer un ex.getMessage ().

Para aclarar más, voidsignifica que no hay nada devuelto. No puedes convertir nada en algo :)

Respuesta: 6

PUEDES convertir stacktrace en String usando a continuación. Si ees el objeto de excepción

StringWriter stringWriter= new StringWriter();
PrintWriter printWriter= new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
String stackTraceAsString= stringWriter.toString(); 
Respuesta: 7

Gracias a todos. Puedo registrar los detalles de seguimiento de la pila usando

LOGGER.log(Level.INFO, ex.getMessage(),ex);
//ex is my exception object
Respuesta: 8

Soy nuevo en Maven. Recientemente lo aprendí para resolver algunos problemas de dependencia que estoy teniendo con una aplicación web Java y Spring. He estado probando maven en una pequeña muestra de aplicación web. La aplicación web utiliza etiquetas JSTL. ...

tengo un archivo que tiene algunos caracteres que no son utf8 (como "ISO-8859-1"), por lo que quiero convertir ese archivo (o leer) a la codificación UTF8, ¿cómo puedo hacerlo? El código es así: Archivo de archivo = archivo nuevo ("...

¿Las diapositivas de la presentación vinculadas desde la página de colecciones de Google están disponibles en algún lugar en formato PDF en la web? Es decir, estoy buscando las diapositivas del video resumen, ya que es más fácil de buscar ...

Tengo una aplicación Java implementada en Tomcat 7 ejecutándose en Ubuntu 10.04. Ha habido un problema durante la apertura de un socket del servidor que no pude reproducir hasta ahora: java.net.SocketException: No se puede asignar ...