2011-03-13 18 views
5

qualcuno potrebbe spiegarmi come configurare java logger per varie classi da un pacchetto concreto?Configurazione di java logger per un pacchetto specifico

ad esempio: se ottengo questo e impostare il tutto

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()); 
       } 
      } 
     }); 

ci sono condizioni come questo

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

nella biblioteca dove HttpTransport fa parte di com.google.api.client.*

Ma il problema è che

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

è false ... come se un registratore diverso è stato ottenuto

In quale altro modo devo impostare per tutte le classi dello stesso pacchetto? se ci sono condizioni per logger per classi concrete come HttpTransport.

risposta

6

Non si desidera il simbolo * nella stringa del pacchetto. Change

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

a

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

OMG :-) ho trascorso 30 minuti con questo ... Grazie – lisak

+0

E 'meglio usare 'Client.class.getName()' di una stringa come il nome della classe, quindi se si refactoring non interromperà il tuo log. – Webnet

Problemi correlati