Saltar al contenido

Cómo escribir un registro de errores o una excepción en un archivo en Java

La guía paso a paso o código que verás en este artículo es la resolución más eficiente y efectiva que hallamos a esta inquietud o dilema.

Solución:

Primero lea el manual log4j, es fácil configurar un archivo de registro continuo. No tiene que hacer ninguna operación de archivo explícita.

#SET LEVEL of ROOT-LOGGER, you will like to have Debug in local, but in prod you may just want WARN and ABOVE. This setting is done here!
log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number. (basically, format of log)
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

# THIS IS WHERE YOU WILL HAVE ALL THE LOG WRITTEN
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=/var/log/applogs/example.log

# Maximum size of log file, usually we keep 10MB
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file, usually we keep 10
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

En segundo lugar, cada vez que detecte una excepción, haga lo siguiente

public class MyClass

  private static Logger logger = Logger.getLogger(MyClass.class);

  public ReturnType myMethod(Param p, Param2 p2) 
    ....
    ....
    try 
      ..    
     catch(MyException e) 
       logger.log("Exceptions happen!", e); //this will put all the details in log file configured earlier
    
    ....
  

  ....

Vale la pena leer el manual. Aún mejor, lea el Manual completo de log4j

try 
       System.setErr(new PrintStream(new FileOutputStream(System.getProperty("user.home")+"/error.log")));
 catch (FileNotFoundException ex) 
        ex.printStackTrace();

Ahora todos los resultados de error se escriben en este archivo

Puede agregar la excepción como un parámetro a su declaración log4j, por ejemplo

catch(Exception e)

    logger.error("Unexpected error", e);

Siempre que tenga un anexador de archivos funcionando correctamente, esto generará el seguimiento completo de la pila de la excepción.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *