analytics

Mostrando entradas con la etiqueta Java quitar excepciones consola. Mostrar todas las entradas
Mostrando entradas con la etiqueta Java quitar excepciones consola. Mostrar todas las entradas

lunes, 21 de agosto de 2017

Java evitar mensajes por consola


Java, cómo evitar que nuestra aplicación muestre mensajes por pantalla al ejecutar:


¿Y por qué querríamos no ver los mensajes? Porque en una entrega a cliente es inconcebible que se vean mensajes del tipo "hola! llego a esta funcion!, bien !" o del tipo "NullPointerException". No es presentable y pondrá en seria duda nuestra profesionalidad.


Una opción sería no poner ningún System.out y evitar que las excepciones nos muestren el mensaje, lo cual no termina de ser buena idea, ya que no nos enteraremos de qué ocurre durante la ejecución de nuestra aplicación.

La mejor opción es externalizar todos los mensajes a un fichero de Log. Realmente, ésta sería la mejor opción. Tendremos todos los sucesos guardados, ordenados, con fecha y podremos acceder a ellos posteriormente. Aquí veíamos un ejemplo de uso con Log4J

Sin embargo, hay una opción intermedia, que es capturar los stream de out y err y redirigirlos hacia buffers que no apuntan a ningún sitio. Tal como a continuación se muestra.


    ByteArrayOutputStream baos1 = new ByteArrayOutputStream();
    PrintStream ps1 = new PrintStream(baos1);
     ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
    PrintStream ps2 = new PrintStream(baos1);
    // IMPORTANT: Save the old System.out!
    PrintStream old = System.out;
    PrintStream old2 = System.err;
    // Tell Java to use your special stream
    
    System.out.println("Starting...");
    
    System.setOut(ps1);
    System.setErr(ps2);

    System.out.println("Siguiente...");


En el ejemplo anterior, veremos por consola el mensaje de "Starting", pero el mensaje "Siguiente" ya no lo veremos.