practices logger example best java string logging prefix

logger - java logging best practices



Enganche en System.out.println(); y modificar (2)

Me gustaría modificar el resultado impreso por System.out.println(); . ¿Cómo es esto posible? Es posible, lo he visto en Bukkit / Craftbukkit. Si un complemento está imprimiendo una cadena con System.out.println (String string); Bukkit agrega una hora / fecha y un estado de registro a la cadena. Me gustaría hacer lo mismo que Bukkit.


PrintStream print= new PrintStream(System.out) { @Override public void println(String yourString) { super.println(System.currentTimeMillis()+ ": " + yourString); } }; print.println("your String");


Puede cambiar el PrintStream que se utiliza como salida estándar:

System.setOut (PrintStream fuera)

Cree su propia implementación PrintStream que imprima toda la información adicional que desee en la salida estándar (antigua) y PrintStream con:

System.setOut(myStream);

Ejemplo:

El siguiente ejemplo imprime el milis de tiempo actual antes de cada String impresa que se imprime con el PrintStream.println(String x) :

PrintStream myStream = new PrintStream(System.out) { @Override public void println(String x) { super.println(System.currentTimeMillis() + ": " + x); } }; System.setOut(myStream); System.out.println("Hello World!");

Salida:

1420553422337: Hello World!

Nota:

Este ejemplo solo anula el PrintStream.println(String x) , por lo que llamar a otros métodos de impresión de PrintStream no agregaría la marca de tiempo a la salida.