Share via


Logger 클래스

정의

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

[Android.Runtime.Register("java/util/logging/Logger", DoNotGenerateAcw=true)]
public class Logger : Java.Lang.Object
[<Android.Runtime.Register("java/util/logging/Logger", DoNotGenerateAcw=true)>]
type Logger = class
    inherit Object
상속
Logger
특성

설명

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다. 로거는 일반적으로 계층적 점으로 구분된 네임스페이스를 사용하여 이름을 지정합니다. 로거 이름은 임의의 문자열일 수 있지만 일반적으로 로그된 구성 요소의 패키지 이름 또는 클래스 이름(예: java.net 또는 javax.swing)을 기반으로 해야 합니다. 또한 로거 네임스페이스에 저장되지 않은 "익명" 로거를 만들 수 있습니다.

getLogger 팩터리 메서드 중 하나에서 호출을 통해 로거 개체를 가져올 수 있습니다. 새 로거를 만들거나 적절한 기존 로거를 반환합니다. 로거에 대한 강력한 참조가 유지되지 않으면 팩터리 메서드 중 getLogger 하나에서 반환된 로거가 언제든지 가비지 수집될 수 있다는 점에 유의해야 합니다.

로깅 메시지는 등록된 처리기 개체로 전달되며, 이 개체는 콘솔, 파일, OS 로그 등을 비롯한 다양한 대상으로 메시지를 전달할 수 있습니다.

각 로거는 로거 네임스페이스에서 가장 가까운 기존 상위 항목인 "부모" 로거를 추적합니다.

각 로거에는 연결된 "수준"이 있습니다. 이는 이 로거가 관심 있는 최소 수준을 반영합니다. 로거 수준이 로 설정 null되면 해당 유효 수준은 부모로부터 상속되며, 이로 인해 부모 수준에서 재귀적으로 가져올 수 있으며 트리 위로 올라갈 수 있습니다.

LogManager 클래스의 설명에 설명된 대로 로깅 구성 파일의 속성에 따라 로그 수준을 구성할 수 있습니다. 그러나 Logger.setLevel 메서드의 호출에 의해 동적으로 변경될 수도 있습니다. 로거 수준이 변경된 경우 해당 수준인 자식 로거가 부모로부터 유효 수준을 상속하므로 변경 내용이 null 자식 로거에도 영향을 줄 수 있습니다.

각 로깅 호출에서 로거는 처음에 로거의 유효 로그 수준에 대해 요청 수준(예: SEVERE 또는 FINE)의 저렴한 검사 수행합니다. 요청 수준이 로그 수준보다 낮으면 로깅 호출이 즉시 반환됩니다.

이 초기(저렴한) 테스트를 통과한 후 로거는 LogRecord를 할당하여 로깅 메시지를 설명합니다. 그런 다음 필터(있는 경우)를 호출하여 레코드를 게시해야 하는지 여부에 대한 자세한 검사 수행합니다. 이 값을 전달하면 LogRecord가 출력 처리기에 게시됩니다. 기본적으로 로거는 트리를 재귀적으로 상위 처리기에 게시합니다.

각 로거에는 연결된 가 ResourceBundle 있을 수 있습니다. 은 ResourceBundle 메서드를 사용하여 #getLogger(java.lang.String, java.lang.String)#setResourceBundle(java.util.ResourceBundle) setResourceBundle 이름, 팩터리 메서드 또는 값으로 지정할 수 있습니다. 이 번들은 로깅 메시지를 지역화하는 데 사용됩니다. 로거에 자체 ResourceBundle 또는 리소스 번들 이름이 없는 경우 부모로부터 또는 리소스 번들 이름을 상속 ResourceBundle 하고 트리를 재귀적으로 위로 올림합니다.

대부분의 로거 출력 메서드는 "msg" 인수를 사용합니다. 이 msg 인수는 원시 값 또는 지역화 키일 수 있습니다. 서식을 지정하는 동안 로거에 지역화 ResourceBundle 가 있거나 상속되고 에 msg 문자열에 대한 매핑이 있는 경우 ResourceBundle msg 문자열이 지역화된 값으로 바뀝니다. 그렇지 않으면 원래 msg 문자열이 사용됩니다. 일반적으로 포맷터는 java.text.MessageFormat 스타일 서식을 사용하여 매개 변수의 서식을 지정합니다. 예를 들어 "{0}{1}" 형식 문자열은 두 매개 변수의 서식을 문자열로 지정합니다.

메서드 집합은 "msg" 인수 대신 "msgSupplier"를 사용합니다. 이러한 메서드는 메시지가 실제로 유효 로그 수준에 따라 기록될 때만 원하는 로그 메시지를 생성하기 위해 호출되는 함수를 사용하여 Supplier<String> 불필요한 메시지 생성을 제거합니다. 예를 들어 개발자가 진단을 위해 시스템 상태 상태 문자열 허용 버전으로 기록하려는 경우 코드는 다음과 같습니다.

<code>

               class DiagnosisMessages {
                 static String systemHealthStatus() {
                   // collect system health information
                   ...
                 }
               }
               ...
               logger.log(Level.FINER, DiagnosisMessages.systemHealthStatus());
</code>

위의 코드를 사용하면 로그 수준 FINER이 사용하지 않도록 설정된 경우에도 상태 상태 불필요하게 수집됩니다. 아래와 같이 Supplier 수락 버전을 사용하면 로그 수준 FINER을 사용하는 경우에만 상태 수집됩니다.

<code>

               logger.log(Level.FINER, DiagnosisMessages::systemHealthStatus);
</code>

ResourceBundle찾을 때 로거는 먼저 를 사용하여 #setResourceBundle(java.util.ResourceBundle) setResourceBundle번들을 지정했는지 여부와 팩터리 메서드를 통해 #getLogger(java.lang.String, java.lang.String) getLogger 리소스 번들 이름이 지정되었는지 여부만 확인합니다. 리소스 번들 이름이 없거나 없는 ResourceBundle 경우 부모 트리에서 상속된 가장 ResourceBundle 가까운 또는 리소스 번들 이름을 사용합니다.<br> 메서드를 ResourceBundle 통해 #setResourceBundle(java.util.ResourceBundle) setResourceBundle 가 상속되거나 지정되면 이 ResourceBundle 사용됩니다. 그렇지 않으면 로거에 리소스 번들 이름만 있거나 상속된 경우 해당 리소스 번들 이름은 로깅 시 기본 로캘을 ResourceBundle 사용하여 개체에 매핑됩니다. <br id="ResourceBundleMapping">리소스 번들 이름을 개체에 매핑할 ResourceBundle 때 로거는 먼저 Thread의 java.lang.Thread#getContextClassLoader() 컨텍스트 클래스 로더를 사용하여 지정된 리소스 번들 이름을 ResourceBundle에 매핑하려고 합니다. 스레드 컨텍스트 클래스 로더가 null이면 java.lang.ClassLoader#getSystemClassLoader() 시스템 클래스 로더를 대신 시도합니다. 가 ResourceBundle 아직 없으면 팩터리 메서드의 첫 번째 호출자의 클래스 로더를 #getLogger(java.lang.String, java.lang.String) getLogger 사용합니다.

서식 지정(지역화 포함)은 일반적으로 Formatter를 호출하는 출력 처리기의 책임입니다.

서식 지정이 동기적으로 수행되지는 않습니다. LogRecord가 실제로 외부 싱크에 기록될 때까지 지연될 수 있습니다.

로깅 메서드는 ul><li의 다섯 가지 기본 범주<로 그룹화됩니다.>

로그 수준, 메시지 문자열 및 선택적으로 메시지 문자열에 대한 일부 매개 변수를 사용하는 "로그" 메서드 집합이 있습니다. <리튬>

"log" 메서드와 비슷하지만 명시적 소스 클래스 이름 및 메서드 이름도 사용하는 "logp" 메서드 집합이 있습니다("log precise"의 경우). <리튬>

"logp" 메서드와 비슷하지만 로그 메시지를 지역화하는 데 사용할 명시적 리소스 번들 개체를 사용하는 "logrb" 메서드 집합("리소스 번들로 로그")이 있습니다. <리튬>

메서드 항목 추적("enter" 메서드), 메서드 반환("종료" 메서드) 및 예외("throwing" 메서드)를 throw하기 위한 편리한 메서드가 있습니다. <리튬>

마지막으로 개발자가 지정된 로그 수준에서 간단한 문자열을 기록하려고 할 때 가장 간단한 경우에 사용할 수 있는 편리한 방법 집합이 있습니다. 이러한 메서드는 표준 수준 이름("심각", "경고", "정보" 등)의 이름을 따서 명명되며 단일 인수인 메시지 문자열을 사용합니다. </ul>

명시적 원본 이름 및 메서드 이름을 사용하지 않는 메서드의 경우 로깅 프레임워크는 로깅 메서드에 호출된 클래스와 메서드를 결정하기 위해 "최선의 노력"을 수행합니다. 그러나 이 자동 유추 정보는 대략적일 수 있습니다(또는 매우 잘못되었을 수도 있음). 가상 머신은 JITing 시 광범위한 최적화를 수행할 수 있으며 스택 프레임을 완전히 제거할 수 있으므로 호출 클래스 및 메서드를 안정적으로 찾을 수 없습니다.

로거의 모든 메서드는 다중 스레드로부터 안전합니다.

<b>서브클래싱 정보:</b> LogManager 클래스는 네임스페이스의 모든 지점에 대해 명명된 로거의 자체 구현을 제공할 수 있습니다. 따라서 로거의 모든 하위 클래스(새 LogManager 클래스와 함께 구현되지 않는 한)는 LogManager 클래스에서 로거 instance 가져오기 위해 주의해야 하며 해당 instance "isLoggable" 및 "log(LogRecord)"와 같은 작업을 위임해야 합니다. 모든 로깅 출력을 가로채려면 하위 클래스가 log(LogRecord) 메서드만 재정의하면 됩니다. 다른 모든 로깅 메서드는 이 log(LogRecord) 메서드에 대한 호출로 구현됩니다.

1.4에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.logging.Logger.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

Logger(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

Logger(String, String)

명명된 하위 시스템에 대한 로거를 생성하는 Protected 메서드입니다.

필드

GlobalLoggerName

GLOBAL_LOGGER_NAME 전역 로거의 이름입니다.

속성

AnonymousLogger

익명 로거를 만듭니다.

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Filter

이 로거에 대한 현재 필터를 가져옵니다. -또는- 이 로거의 출력을 제어하도록 필터를 설정합니다.

Global

로거라는 이름의 전역 로거 개체를 반환합니다.

Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
JniPeerMembers

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

Level

이 로거에 대해 지정된 로그 수준을 가져옵니다. -또는- 이 로거에서 기록할 메시지 수준을 지정하는 로그 수준을 설정합니다.

Name

이 로거의 이름을 가져옵니다.

Parent

이 로거에 대한 부모를 반환합니다. -또는- 이 로거에 대한 부모를 설정합니다.

PeerReference

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
ResourceBundle

이 로거에 대한 지역화 리소스 번들을 검색합니다. -또는- 이 로거에서 리소스 번들을 설정합니다.

ResourceBundleName

이 로거에 대한 지역화 리소스 번들 이름을 검색합니다.

ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

UseParentHandlers

이 로거가 해당 출력을 부모 로거로 보내는지 여부를 검색합니다. -또는- 이 로거가 해당 출력을 부모 로거에 보낼지 여부를 지정합니다.

메서드

AddHandler(Handler)

로깅 메시지를 받을 로그 처리기를 추가합니다.

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Config(ISupplier)

로깅 수준이 메시지가 실제로 기록되도록 하는 경우에만 생성되는 CONFIG 메시지를 기록합니다.

Config(String)

CONFIG 메시지를 기록합니다.

Dispose()

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
Entering(String, String)

메서드 항목을 기록합니다.

Entering(String, String, Object)

하나의 매개 변수를 사용하여 메서드 항목을 기록합니다.

Entering(String, String, Object[])

매개 변수 배열을 사용하여 메서드 항목을 기록합니다.

Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
Exiting(String, String)

메서드 반환을 기록합니다.

Exiting(String, String, Object)

결과 개체를 사용하여 메서드 반환을 기록합니다.

Fine(ISupplier)

로깅 수준이 메시지가 실제로 기록되도록 하는 경우에만 생성되는 FINE 메시지를 기록합니다.

Fine(String)

FINE 메시지를 기록합니다.

Finer(ISupplier)

FINER 메시지를 기록합니다. 이는 로깅 수준이 메시지가 실제로 기록되도록 하는 경우에만 생성됩니다.

Finer(String)

FINER 메시지를 기록합니다.

Finest(ISupplier)

로깅 수준이 메시지를 실제로 기록하도록 하는 경우에만 생성되는 FINEST 메시지를 기록합니다.

Finest(String)

FINEST 메시지를 기록합니다.

GetAnonymousLogger(String)

익명 로거를 만듭니다.

GetHandlers()

이 로거와 연결된 처리기를 가져옵니다.

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
GetLogger(String)

명명된 하위 시스템에 대한 로거를 찾거나 만듭니다.

GetLogger(String, String)

명명된 하위 시스템에 대한 로거를 찾거나 만듭니다.

Info(ISupplier)

정보 메시지를 기록합니다. 로깅 수준이 메시지가 실제로 기록되도록 하는 경우에만 생성됩니다.

Info(String)

INFO 메시지를 기록합니다.

IsLoggable(Level)

지정된 수준의 메시지가 이 로거에 의해 실제로 기록되는지 확인합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Log(Level, ISupplier)

로깅 수준이 메시지가 실제로 기록되도록 하는 경우에만 생성되는 메시지를 기록합니다.

Log(Level, String)

인수 없이 메시지를 기록합니다.

Log(Level, String, Object)

하나의 개체 매개 변수를 사용하여 메시지를 기록합니다.

Log(Level, String, Object[])

개체 인수의 배열을 사용하여 메시지를 기록합니다.

Log(Level, String, Throwable)

관련 Throw 가능 정보를 사용하여 메시지를 기록합니다.

Log(Level, Throwable, ISupplier)

Throw 가능한 관련 정보를 사용하여 지연 생성 메시지를 기록합니다.

Log(LogRecord)

LogRecord를 기록합니다.

Logp(Level, String, String, ISupplier)

인수 없이 소스 클래스 및 메서드를 지정하여 지연 생성 메시지를 기록합니다.

Logp(Level, String, String, String)

인수 없이 원본 클래스 및 메서드를 지정하여 메시지를 기록합니다.

Logp(Level, String, String, String, Object)

로그 메시지에 단일 개체 매개 변수를 사용하여 원본 클래스 및 메서드를 지정하는 메시지를 기록합니다.

Logp(Level, String, String, String, Object[])

개체 인수 배열을 사용하여 원본 클래스 및 메서드를 지정하는 메시지를 기록합니다.

Logp(Level, String, String, String, Throwable)

원본 클래스 및 메서드를 지정하는 메시지를 연결된 Throwable 정보와 함께 기록합니다.

Logp(Level, String, String, Throwable, ISupplier)

소스 클래스 및 메서드를 지정하는 지연 생성 메시지를 연결된 Throwable 정보와 함께 기록합니다.

Logrb(Level, String, String, ResourceBundle, String, Object[])

인수 없이 원본 클래스, 메서드 및 리소스 번들 이름을 지정하여 메시지를 기록합니다.

Logrb(Level, String, String, ResourceBundle, String, Throwable)

관련 Throw 가능 정보를 사용하여 원본 클래스, 메서드 및 리소스 번들을 지정하는 메시지를 기록합니다.

Logrb(Level, String, String, String, String)

인수 없이 원본 클래스, 메서드 및 리소스 번들 이름을 지정하여 메시지를 기록합니다.

Logrb(Level, String, String, String, String, Object)

로그 메시지에 단일 개체 매개 변수를 사용하여 원본 클래스, 메서드 및 리소스 번들 이름을 지정하는 메시지를 기록합니다.

Logrb(Level, String, String, String, String, Object[])

개체 인수 배열을 사용하여 원본 클래스, 메서드 및 리소스 번들 이름을 지정하는 메시지를 기록합니다.

Logrb(Level, String, String, String, String, Throwable)

원본 클래스, 메서드 및 리소스 번들 이름을 지정하는 메시지를 연결된 Throwable 정보와 함께 기록합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
RemoveHandler(Handler)

로그 처리기를 제거합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
Severe(ISupplier)

로깅 수준이 메시지를 실제로 기록하도록 하는 경우에만 생성되는 심각한 메시지를 기록합니다.

Severe(String)

심각한 메시지를 기록합니다.

Throwing(String, String, Throwable)

예외를 throw하는 로그입니다.

ToArray<T>()

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Warning(ISupplier)

경고 메시지를 기록합니다. 이는 로깅 수준이 메시지가 실제로 기록되도록 하는 경우에만 생성됩니다.

Warning(String)

경고 메시지를 기록합니다.

명시적 인터페이스 구현

IJavaPeerable.Disposed()

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

GetJniTypeName(IJavaPeerable)

Logger 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다.

적용 대상