Tengo dos clases en mi proyecto que me gustaría pasar el registrador de la clase principal a la subclase y hacer que la subclase utilice la configuración del registrador principal.Pasar un registrador entre las clases
La subclase es una clase genérica separada (es decir, no está vinculada a la clase principal) y debe ser capaz de crear su propio registrador si no se proporciona uno.
La clase principal crea un registrador, agrega un controlador de consola, manejador de archivos y formateador de registro, y me gustaría que la subclase pueda anular temporalmente el formateador de registro para sus mensajes de registro y luego cuando la clase principal se reanude , vuelve a su formateador de registro.
He intentado adaptar el registrador a la subclase, o crear uno nuevo si es necesario, pero recibo varios mensajes en la pantalla y en el archivo de registro (parece que está agregando los manejadores a la clase principal en lugar de dominarlo).
¿Cómo voy a hacer esto?
por lo que no necesita pasar el registrador y establecer la instancia registrador? p. private void setLogger (Logger logger) { this.logger = logger; } – Omertron
Ok, así que lo hice, cambié el método para aceptar el nombre de cadena del registrador. Ahora necesito redirigir el logFormatter de la clase principal al formateador de mi clase local, pero ahora "sobrescribe" el formateador de la clase principal – Omertron
Bueno, podría "guardar" el formateador del registrador original (Principal), por ejemplo como un campo de subclase, y volver a configurarlo cuando haya terminado de usarlo en la subclase. Diría que es lo suficientemente seguro si no hay paralelismo. Sin embargo, la práctica recomendada es que todas las clases deben usar su propio registrador y obtener sus propias instancias usando Logger.getLogger (LocalClass.class.getName()). – cbaby