2011-04-29 16 views
5

Probablemente este hilo es duplicate pero ¿alguien puede guiar? Quiero escribir la salida del programa java a consola y archivo al mismo tiempo. Sé que puedo enviar la salida a la consola con este pedazo de códigoSalida de la consola Java - Archivo Y a la consola AMBOS

PrintStream orgStdout = null; 
    PrintStream fileStdout = null; 

    orgStdout = System.out; 
    try { 
     fileStdout = new PrintStream(new FileOutputStream("C:\\testlogger.txt")); 
     System.setOut(fileStdout); 
     System.out.println("=============="); 
     for (int i = 0; i < 10; i++){ 
      System.out.println("" + i); 
     } 
     System.out.println("=============="); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 

pero la forma de mantener la producción en la consola y en el expediente, así ??

P.S: No busco una opción donde la publico en un archivo y la visualizo en otro hilo.

+2

deberán tener en cuenta [log4j] (http: //logging.apache.org/log4j/1.2/manual.html) – mre

Respuesta

2

No llame a System.setOut() y solo realice dos llamadas para imprimir. No es muy elegante, pero podrías hacer un método que produzca ambos.

PrintStream orgStdout = null; 
PrintStream fileStdout = null; 

orgStdout = System.out; 
try { 
    fileStdout = new PrintStream(new FileOutputStream("C:\\testlogger.txt")); 
    System.out.println("=============="); 
    for (int i = 0; i < 10; i++){ 
     System.out.println("" + i); 
     fileStdout.println("" + i); 
    } 
    System.out.println("=============="); 
    fileStdout.println("" + i); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 

Si se está ejecutando en una máquina Unix, también se puede utilizar el comando tee siempre y cuando todo se imprime en la salida estándar. Ejecutaría su programa así:

java MyClass | tee testlogger.txt 

Luego todo lo impreso en stdout va al archivo y a la consola.

0

cuando se ejecuta el programa de

de Java {banderas para la JVM} {NombredeClase parámetros a la clase}> salida.txt 2> error.txt

Cuestiones relacionadas