Atom Blog

Como Crear Archivo Log en Java

Mostraremos un ejemplo simple de como crear un archivo log (tipo de registro o historial) de los sucesos que ocurren en el programa, se guardan con la fecha y hora del evento.

Primero necesitaremos importar el paquete Calendar, que se encargar de darnos la fecha y la hora.

import java.util.Calendar;

public class archivoLog () {
     FileWriter archivo //nuestro archivo log

     public void crearLog(String Operacion) {

        //Pregunta el archivo existe, caso contrario crea uno con el nombre log.txt
        if (new File("log.txt").exists()==false){archivo=new FileWriter(new File("log.txt"),false);}
             archivo = new FileWriter(new File("log.txt"), true);
             Calendar fechaActual = Calendar.getInstance(); //Para poder utilizar el paquete calendar    
             //Empieza a escribir en el archivo
             archivo.write((String.valueOf(fechaActual.get(Calendar.DAY_OF_MONTH))
                  +"/"+String.valueOf(fechaActual.get(Calendar.MONTH)+1)
                  +"/"+String.valueOf(fechaActual.get(Calendar.YEAR))
                  +";"+String.valueOf(fechaActual.get(Calendar.HOUR_OF_DAY))
                  +":"+String.valueOf(fechaActual.get(Calendar.MINUTE))
                  +":"+String.valueOf(fechaActual.get(Calendar.SECOND)))+";"+operacion+"\r\n");
             archivo.close(); //Se cierra el archivo
     }//Fin del metodo crearLog
   
     //Como ejemplo ponemos el caso que se este agregando nombres de personas a un vector
     //y queremos guardar en el Log cada vez que ocurre el evento, seria así:

     public void agregarPersona() {
          //Codigo .....
          this.crearLog("Nueva Persona guardada"); //Guarda en el Log el evento realizado
     }

     public static main() {
          archivoLog archivo = new ArchivoLog(); //Instancia de la clase para utilizar sus metodos.
          archivo.agregarPersona(); //Se llama al método agregarPersona
     }//Fin del main

}//Fin de la clase






7 comentarios:

  1. Hola, tu código no me funciono pero gracias

    ResponderBorrar
    Respuestas
    1. Yo lo he adaptado un poco para lo que necesito y este es el resultado:

      [6/6/2014 13:1:8] [WARNING]: ******* con 257ms de ping!
      [6/6/2014 13:1:10] [WARNING]: ******* con 288ms de ping!
      [6/6/2014 13:1:11] [WARNING]: ******* con 358ms de ping!

      Vaya, perfecto :)

      Borrar
  2. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  3. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  4. El código me sirvió genial, pero me toco corregir unos errores, lo dejo corregido por si alguien tiene mi mismo problema:


    package generarxml;

    import java.io.*;
    import java.util.Calendar;

    public class ArchivoLog {

    String dir;

    FileWriter archivo;
    //nuestro archivo log

    public void InfoLog(String Operacion,String dir) throws IOException{

    this.dir = dir;
    //Pregunta el archivo existe, caso contrario crea uno con el nombre log.txt
    if (new File(dir+"//"+"log.txt").exists()==false){archivo=new FileWriter(new File(dir +"//"+"log.txt"),false);}
    archivo = new FileWriter(new File(dir +"//"+"log.txt"), true);
    Calendar fechaActual = Calendar.getInstance(); //Para poder utilizar el paquete calendar
    //Empieza a escribir en el archivo
    archivo.write("["+(String.valueOf(fechaActual.get(Calendar.DAY_OF_MONTH))
    +"/"+String.valueOf(fechaActual.get(Calendar.MONTH)+1)
    +"/"+String.valueOf(fechaActual.get(Calendar.YEAR))
    +" "+String.valueOf(fechaActual.get(Calendar.HOUR_OF_DAY))
    +":"+String.valueOf(fechaActual.get(Calendar.MINUTE))
    +":"+String.valueOf(fechaActual.get(Calendar.SECOND)))+"]"+"[INFO]"+ " " +Operacion+"\r\n");
    archivo.close(); //Se cierra el archivo
    }//Fin del metodo InfoLog

    ResponderBorrar