Foros del Web » Programación para mayores de 30 ;) » Java »

Logger selector con Enum

Estas en el tema de Logger selector con Enum en el foro de Java en Foros del Web. Estoy trabajando con unos cuantos servicios web (usando JAX-WS RI) y necesito en el entorno de producción hacer log de todas las llamadas repartidas en ...
  #1 (permalink)  
Antiguo 09/04/2015, 02:00
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 10 meses
Puntos: 306
Logger selector con Enum

Estoy trabajando con unos cuantos servicios web (usando JAX-WS RI) y necesito en el entorno de producción hacer log de todas las llamadas repartidas en diferentes archivos, así que he implementado SOAPHandler para hacer el log.

En principio iba a hacer un LoginHandler para cada "fichero log" que quiero, pero es un poco tontería ya que la única diferencia entre ellos es el archivo de destino, así que se me ocurrió hacer un LogSelector al estilo del ProxySelector y un sólo LoginHandler.

Como el tema de llenar un Map con los distintos Logger no me pareció muy cómodo, se me ocurrió usar un Enum de Logger, de esa forma tendría un LogSelector y además podría usar directamente cualquier Logger con sólo elegir su Enum.

Sería algo así

Código Java:
Ver original
  1. enum Logger{
  2.    
  3.     SERVICIO1("paquete"),
  4.     SERVICIO2("paquete2");
  5.    
  6.     private Logger logger;
  7.    
  8.     Logger(String paquete){
  9.         //Creo el logger
  10.     }
  11.    
  12. ...
  13. }

¿Estoy reinventando la rueda, veis algún problema que se me está pasando o puede servir?
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #2 (permalink)  
Antiguo 09/04/2015, 02:32
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 7 meses
Puntos: 182
Respuesta: Logger selector con Enum

Buenas,

Para la problematica que tienes (distintos ficheros de log a informar) me parece una solucion bastante elegante y clara.

En cualquier caso, yo tampoco veria problema a declarar todos los logs en el propio handler, ya que estarian identificados con su nombre de la variable.

En pseudocodigo

Código Java:
Ver original
  1. class LoginHandler {
  2.    private Logger loggerServicio1= Logger.getLogger("paquete");
  3.    private Logger loggerServicio2= Logger.getLogger("paquete2");
  4.    ....
  5.  
  6. }

Por ultimo, un pequeno detalle
Yo llamaria al handler mejor LoggingHandler o LogHandler y no LoginHandler (por su nombre a mi me invitaria a pensar que es un handler de autentication).


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 09/04/2015, 15:51
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 10 meses
Puntos: 306
Respuesta: Logger selector con Enum

En realidad tengo algún servicio más con REST, por eso lo de usar otra clase fuera del Handler, y lo usar Enum en vez de static es por falicitar la búsqueda automática del Logger en función del paquete del servicio.

Lo de LoginHandler pues
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 10/04/2015, 00:27
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 7 meses
Puntos: 182
Respuesta: Logger selector con Enum

Si lo vas a usar tambien fuera del handler entonces me parece una buena solution, sin matices.


Un saludo!
__________________
If to err is human, then programmers are the most human of us

Etiquetas: enum, selector
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:00.