domingo, 10 de febrero de 2013

Fichero log: redirigir la salida de Java a un fichero

Hoy vamos a incluir cómo hacer un método que redirija la salida de Java a archivo para hacer un archivo log. El proceso es tan sencillo como utilizar dos métodos de la clase System: setErr y setOut, pasando como parámetro un objeto de tipo PrintStream.

El método propuesto es el siguiente:

public static void standardIO2File(String fileName){

        if(fileName.equals("")){//Si viene vacío usamos este por defecto

            fileName="C:\\javalog.txt";

        }

        try {

            //Creamos un printstream sobre el archivo permitiendo añadir al

            //final para no sobreescribir.

            PrintStream ps = new PrintStream(new BufferedOutputStream(

                    new FileOutputStream(new File(fileName),true)),true);

            //Redirigimos entrada y salida estandar

            System.setOut(ps);

            System.setErr(ps);

        } catch (FileNotFoundException ex) {

            System.err.println("Se ha producido una excepción FileNotFoundException");

        }

    }

Como veis el método es muy sencillo: pasamos como parámetro un String con el nombre (y ruta) del fichero y creamos sobre él un PrintStream que pasaremos como argumento a los métodos setOut y setErr. Estos métodos redirigen al fichero la salida estándar y la de error. Podemos codificar el método con dos argumentos para redirigir la salida estándar a un fichero y la de error a otro, eso queda a gusto del consumidor.

No hay comentarios:

Publicar un comentario

Recomendaciones de Alcasoft