2011-03-13 9 views
5

¿alguien podría explicarme cómo configurar Logger Java para varias clases desde un paquete concreto?Configuración de Logger java para un paquete específico

por ejemplo: si consigo éste y configurarlo

Logger logger = Logger.getLogger("com.google.api.client.*"); 
     logger.setLevel(Level.CONFIG); 
     logger.addHandler(new Handler() { 

      @Override 
      public void close() throws SecurityException { 
      } 

      @Override 
      public void flush() { 
      } 

      @Override 
      public void publish(LogRecord record) { 
       // default ConsoleHandler will take care of >= INFO 
       if (record.getLevel().intValue() < Level.INFO.intValue()) { 
        System.out.println(record.getMessage()); 
       } 
      } 
     }); 

hay condiciones como esta

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG);

en la biblioteca, donde HttpTransport es parte de com.google.api.client.*

Pero el problema es que

Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG); 

es false ... como si se obtuvo un registrador diferente

¿De qué otra debería configurarlo para todas las clases del mismo paquete? si hay condiciones para los madereros para clases concretas como HttpTransport.

Respuesta

6

No desea el * en la cadena del paquete. Cambio

Logger logger = Logger.getLogger("com.google.api.client.*"); 

a

Logger logger = Logger.getLogger("com.google.api.client"); 
+0

OMG :-) Pasé 30 minutos con éste ... Gracias – lisak

+0

Es mejor usar 'Client.class.getName()' que una cadena como el nombre de la clase, por lo que si refactorizas no romperá tu registro. – Webnet

Cuestiones relacionadas