Tratamiento de excepciones

onuaj
14 de Marzo del 2003
Hola, tengo una duda que seguro que es una tonteria. Me gustaria guardar TODAS las excepciones que pueda ir dando mi aplicacion en un fichero de texto, es decir redirigir el System.out.println () o System.err.println() a un fichero de texto ¿eso es posible?

Gracias Mil

Luis
14 de Marzo del 2003
Hi Onuaj.
Si es posible, y no es muy dificil. Te explico lo basico para crear uno que funcione, pero que sea sencillo. Luego a partir de ahi te puede extender y hacerlo tan completo como kieras:
Crea una clase que extienda de la clase Object.
Tienes que crearte dos variables de instancia y estaticas.
La primera de tipo String contendrá el mensaje que quieres guardar o enseñar en pantalla.
La segunda sera una variable de tipo PrintStream. Esta ultima es la que guardará en el archivo todos los mensajes.
El constructor de la clase estará vacio.
Crea una primera funcion static que guardará el PrintStream en un fichero. Como hacerlo te lo dejo de tu cuenta.
Antes del constructor tienes que hacer una llamada static a la funcion que guarda en el archivo los mensajes.

// ASI ES LA LLAMADA
static{
miFuncion();
}

Ya tienes creado la funcion principal de la clase, la que guarda en el archivo. Ahora te falta crear la funcion donde se añaden los mensajes.

Crea una funcion static que se le pase un string con el mensaje (Puedes sobrecargarla con lo que necesites). Dentro de esta funcion añade al PrintStream a traves de la funcion println() el mensaje que quieras guardar.
Ahora dentro de tus clases, cuando quieras guardar un error, solamente tienes que poner el nombre de tu clase y la funcion que recoge el mensaje, y ya te lo guarda en el ficher seleccionado.
Con solo esto puedes crear un sistema de fichero de error basico. Si tienes alguna duda o te atrancas con algo, no dudes en mandarme un e-mail. Un saludo y animo.

Luis
14 de Marzo del 2003
Se me olvidaba. El constructor de PrintStream tiene el FileOutputStream (fichero) y otro que hace referencia al buffer. Yo suelo dejarlo a true. Un saludo y animo.