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.