JavaTM Platform
Standard Ed. 6

java.util.logging
클래스 LogManager

java.lang.Object 
  상위를 확장 java.util.logging.LogManager


public class LogManager
extends Object

Logger 와 로그 서비스의 공유 상태세트를 관리하기 위해서 사용되는 단일의 글로벌 LogManager 객체가 있습니다.  

이 LogManager 에는 다음의 기능이 있습니다.

글로벌 LogManager 객체는, LogManager.getLogManager()를 사용해 취득할 수 있습니다. 이 LogManager 객체는 클래스의 초기화중에 작성되어 그 후는 변경할 수 없습니다.  

LogManager 클래스는, 기동시에 java.util.logging.manager 시스템 프로퍼티을 사용해 배치됩니다.  

LogManager 는 디폴트로, JRE 디렉토리내의 프로퍼티 파일 「lib/logging.properties」로부터 초기 구성을 읽어냅니다. 그 프로퍼티 파일을 편집하면, 그 JRE 의 모든 사용에 대한 디폴트의 로깅 구성을 변경할 수 있습니다.  

또, LogManager 는 초기 구성의 read를 보다 상세하게 제어할 수 있는, 다음의 2 개의 시스템 프로퍼티 옵션을 사용합니다.

이 2 개의 프로퍼티은, Preferences API 에 의해, java 커멘드에 대한 커멘드행 프로퍼티의 정의로서 또는 JNI_CreateJavaVM 에게 건네지는 시스템 프로퍼티의 정의로서 설정할 수가 있습니다.  

java.util.logging.config.class 프로퍼티이 설정되어 있는 경우, 그 프로퍼티치는 클래스명으로 간주해집니다. 지정된 클래스가 로드 되어 객체가 1 개 인스턴스화 됩니다만, 그 객체의 생성자 이 초기 구성을 read를 실시합니다. 이 객체는, 구성을 제어하기 위해서 다른 시스템 프로퍼티을 사용하는 경우가 있습니다. 대체 구성 클래스는,readConfiguration(InputStream) 를 사용해 LogManager 내의 프로퍼티을 정의할 수 있습니다.  

java.util.logging.config.class 프로퍼티이 설정되어 있지 않은 경우, java.util.logging.config.file 시스템 프로퍼티을 사용하면, java.util.Properties 형식의 프로퍼티 파일을 지정할 수 있습니다. 이 파일로부터 초기 로깅 구성이 읽어내집니다.  

이러한 프로퍼티의 모두 정의되지 않는 경우, 전술대로, LogManager 는 JRE 디렉토리의 프로퍼티 파일 lib/logging.properties 로부터 그 초기 구성을 읽어들입니다.  

로거와 Handler 의 프로퍼티은, 핸들러나 로거에 관해서 닷으로 단락지어진 이름으로부터 시작되는 이름을 가집니다.  

글로벌 로그의 프로퍼티에는 다음의 것이 있습니다.

LogManager 의 구성중에 로드 되는 클래스는 모두, 사용자 클래스 패스상에서 검색되기 전에 우선 시스템 클래스 패스상에서 검색되는 것에 주의해 주세요. 이것에는 LogManager 클래스, 모든 config 클래스, 모든 handler 클래스가 포함됩니다.  

Logger 는, 그 닷으로 단락지어진 이름에 근거해, 네이밍 계층으로 구조화 됩니다. 그 결과, 「a.b.c」는 「a.b」의 아이가 됩니다만, 「a.b1」 및 「a.b2」는 피어가 됩니다.  

이름이 「. level」로 끝나는 프로퍼티은 모두, Logger 의 로그 레벨을 정의하고 있다고 보입니다. 따라서, 「foo.level」는 「foo」라고 불리는 로거, 및 네이밍 계층에 있는 그 아이의 로그 레벨을 재귀적으로 정의합니다. 로그 레벨은, 프로퍼티 파일로 정의한 순서에 적용됩니다. 따라서, 트리내의 자식(child) 노드에 대한 레벨의 설정은 부모에 대한 설정의 후에 실시할 필요가 있습니다. 프로퍼티명 「. level」를 사용하면, 트리의 루트의 레벨을 설정할 수 있습니다.  

LogManager 객체의 모든 메소드는 multi-thread에 대해서 안전합니다.

도입된 버젼:
1.4

필드의 개요
static String LOGGING_MXBEAN_NAME
          LoggingMXBean ObjectName 의 캐릭터 라인 표현.
 
생성자 의 개요
protected LogManager ()
          protected 생성자 입니다.
 
메소드의 개요
 boolean addLogger (Logger  logger)
          이름 첨부 로거를 추가합니다.
 void addPropertyChangeListener (PropertyChangeListener  l)
          로그의 프로퍼티이 재독 보고 붐비어 되었을 때에 불려 가는 이벤트 청취자를 추가합니다.
 void checkAccess ()
          현재의 문맥이 신뢰되고 있어 로깅 구성을 변경할 수 있을지 어떨지를 체크합니다.
 Logger getLogger (String  name)
          이름 첨부 로거를 검출하는 메소드입니다.
 Enumeration <String > getLoggerNames ()
          기존의 로거의 이름의 열거를 돌려줍니다.
static LoggingMXBean getLoggingMXBean ()
          로거를 관리하기 위한 LoggingMXBean 를 돌려줍니다.
static LogManager getLogManager ()
          글로벌 LogManager 를 돌려줍니다.
 String getProperty (String  name)
          로그의 프로퍼티의 값을 돌려줍니다.
 void readConfiguration ()
          로그의 프로퍼티을 재차 초기화해 로그 구성을 재차 읽어들입니다.
 void readConfiguration (InputStream  ins)
          로깅프로파티를 재차 초기화해, 지정된 스트림로부터 로그 구성을 재차 읽어들입니다.
 void removePropertyChangeListener (PropertyChangeListener  l)
          프로퍼티 변경 이벤트의 이벤트 청취자를 삭제합니다.
 void reset ()
          로그의 구성을 리셋 합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

LOGGING_MXBEAN_NAME

public static final String  LOGGING_MXBEAN_NAME
LoggingMXBean ObjectName 의 캐릭터 라인 표현.

도입된 버젼:
1.5
관련 항목:
정수 필드치
생성자 의 상세

LogManager

protected LogManager()
protected 생성자 입니다. 이것이 protected 가 되어 있는 것은, J2EE 컨테이너등의 컨테이너 어플리케이션이, 이 객체의 서브 클래스를 작성할 수 있도록(듯이) 하기 (위해)때문에입니다. 이것이 public 가 아닌 것은, LogManager 객체가 1 개 밖에 존재하지 않는 상황이 상정되고 있기 때문입니다. 그 값을 가져오려면 , Logmanager.getLogManager 를 호출합니다.

메소드의 상세

getLogManager

public static LogManager  getLogManager()
글로벌 LogManager 를 돌려줍니다.


addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener  l)
                               throws SecurityException 
로그의 프로퍼티이 재독 보고 붐비어 되었을 때에 불려 가는 이벤트 청취자를 추가합니다. 같은 이벤트 Listener 의 복수의 인스턴스를 추가하면(자), 프로퍼티 이벤트 청취자 테이블내에 복수의 엔트리가 포함됩니다.

파라미터:
l - 이벤트 청취자
예외:
SecurityException - 시큐리티 매니저가 존재하는 경우로, 호출원이 LoggingPermission("control")를 가지지 않는 경우
NullPointerException - PropertyChangeListener 가 null 의 경우

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener  l)
                                  throws SecurityException 
프로퍼티 변경 이벤트의 이벤트 청취자를 삭제합니다. addPropertyChangeListener 를 여러 차례 호출하는 것으로 같은 청취자의 복수의 인스턴스가 청취자 테이블에 추가되고 있었을 경우, 그 청취자의 모든 인스턴스를 청취자 테이블에서 삭제하려면 ,removePropertyChangeListener 를 그것과 같은 회수만 호출할 필요가 있습니다.  

지정된 청취자가 발견되지 않는 경우는 아무것도 실시하지 않고 복귀합니다.

파라미터:
l - 이벤트 청취자 (null 도 가능)
예외:
SecurityException - 시큐리티 매니저가 존재하는 경우로, 호출원이 LoggingPermission("control")를 가지지 않는 경우

addLogger

public boolean addLogger(Logger  logger)
이름 첨부 로거를 추가합니다. 이것은, 같은 이름 로거가 벌써 등록되어 있는 경우, 아무것도 하지 않고 false 를 돌려줍니다.  

Logger 의 팩토리 메소드는, 이 메소드를 호출해, 신규에 작성된 각 Logger 를 등록합니다.  

어플리케이션은, 이 Logger 객체에의 독자적인 참조를 보관 유지해야 합니다. 그것에 의해, 이 객체가 가베지 컬렉트되는 것을 막을 수 있습니다. LogManager 는 약참조 밖에 보관 유지할 수 없습니다.

파라미터:
logger - 새로운 로거
반환값:
인수 logger 가 정상적으로 등록되었을 경우는 true, 그 이름 로거가 벌써 존재하는 경우는 false
예외:
NullPointerException - 로거의 이름이 null 의 경우

getLogger

public Logger  getLogger(String  name)
이름 첨부 로거를 검출하는 메소드입니다.  

신뢰할 수 없는 코드가 임의의 이름 로거를 작성하는 경우가 있으므로, 이 메소드는 시큐리티상 중요한 로깅용의 Logger 의 검출에는 사용하지 말아 주세요.  

파라미터:
name - 로거의 이름
반환값:
일치하는 로거, 또는 발견되지 않는 경우는 null

getLoggerNames

public Enumeration <String > getLoggerNames()
기존의 로거의 이름의 열거를 돌려줍니다.  

주:Logger 는 새로운 클래스가 로드 되면(자) 동적으로 추가됩니다. 이 메소드는 현재 등록되어 있는 로거에만 붙어 통지합니다.  

반환값:
로거이름의 캐릭터 라인의 열거

readConfiguration

public void readConfiguration()
                       throws IOException ,
                              SecurityException 
로그의 프로퍼티을 재차 초기화해 로그 구성을 재차 읽어들입니다.  

기동시에 사용되는 것과 같은 구성 프로퍼티 검색 규칙이 사용됩니다. 이 때문에, 로깅프로파티의 재독 보고 포함은 일반적으로, 기동시에 사용된 것과 같은 파일로부터 행해집니다.  

새로운 구성 파일의 모든 로그 레벨의 정의는, 타겟의 Logger 가 있는 경우는 Logger.setLevel()를 사용해 적용됩니다.  

PropertyChangeEvent 는 프로퍼티이 읽히고 나서 트리거됩니다.

예외:
SecurityException - 시큐리티 매니저가 존재하는 경우로, 호출원이 LoggingPermission("control")를 가지지 않는 경우
IOException - 구성을 읽어들일 때 입출력의 문제가 발생했을 경우

reset

public void reset()
           throws SecurityException 
로그의 구성을 리셋 합니다.  

모든 이름 첨부 로거에 임해서, reset 오퍼레이션은 모든 Handler (루트 로거의 것은 제외하다)를 삭제해 닫아 레벨을 null 로 설정합니다. 루트 로거의 레벨은 Level.INFO 로 설정됩니다.

예외:
SecurityException - 시큐리티 매니저가 존재하는 경우로, 호출원이 LoggingPermission("control")를 가지지 않는 경우

readConfiguration

public void readConfiguration(InputStream  ins)
                       throws IOException ,
                              SecurityException 
로깅프로파티를 재차 초기화해, 지정된 스트림로부터 로그 구성을 재차 읽어들입니다. 이것은 java.util.Properties 형식이어야 합니다. PropertyChangeEvent 는 프로퍼티이 읽히고 나서 트리거됩니다.  

새로운 구성 파일의 모든 로그 레벨의 정의는, 타겟의 Logger 가 있는 경우는 Logger.setLevel()를 사용해 적용됩니다.

파라미터:
ins - 프로퍼티을 읽어들이는 스트림
예외:
SecurityException - 시큐리티 매니저가 존재하는 경우로, 호출원이 LoggingPermission("control")를 가지지 않는 경우
IOException - 스트림로부터의 read에 문제가 있는 경우

getProperty

public String  getProperty(String  name)
로그의 프로퍼티의 값을 돌려줍니다. 그 프로퍼티이 발견되지 않는 경우는, null 가 돌려주어집니다.

파라미터:
name - 프로퍼티명
반환값:
프로퍼티의 값

checkAccess

public void checkAccess()
                 throws SecurityException 
현재의 문맥이 신뢰되고 있어 로깅 구성을 변경할 수 있을지 어떨지를 체크합니다. 이것에는 LoggingPermission("control")가 필요합니다.  

이 체크에 실패했을 경우는 SecurityException 를 throw 합니다. 그렇지 않은 경우는 정상적으로 복귀합니다.

예외:
SecurityException - 시큐리티 매니저가 존재하는 경우로, 호출원이 LoggingPermission("control")를 가지지 않는 경우

getLoggingMXBean

public static LoggingMXBean  getLoggingMXBean()
로거를 관리하기 위한 LoggingMXBean 를 돌려줍니다. LoggingMXBeanplatform MBeanServer 메소드로부터도 취득할 수 있습니다.

반환값:
LoggingMXBean 객체
도입된 버젼:
1.5
관련 항목:
ManagementFactory

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.