2011-03-13 3 views
5

누구나 내게 설명 할 수 있습니다. 구체적인 패키지에서 다양한 클래스 용 Java Logger를 설정하는 방법은 무엇입니까?특정 패키지에 대한 Java Logger 설정

예를 들어

:이 하나를 얻을하고 설정 한 경우

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

라이브러리에서이

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

같은 조건이 곳 HttpTransportcom.google.api.client.*

의 일부가되어 있습니다

하지만 문제는 그게

입니다. 다른 로거는 내가 같은 패키지의 모든 클래스를 설정하는 방법을 다른

을 얻은 경우
Logger.getLogger(HttpTransport.class.getName()).isLoggable(Level.CONFIG); 

같은 ... false입니까? HttpTransport와 같은 구체적인 클래스에 대한 로거 조건이있는 경우

답변

6

패키지 문자열에. *을 사용하지 않으려합니다. 변경

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

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

:-) OMG에 나는 ...이 한 30 분 동안 그것은 문자열로보다''Client.class.getName()를 사용하는 것이 좋습니다 당신에게 – lisak

+0

감사 클래스 이름이므로 리팩토링하면 로깅이 중단되지 않습니다. – Webnet

관련 문제