Logger 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다. 로거는 일반적으로 계층적 점으로 구분된 네임스페이스를 사용하여 이름을 지정합니다. 로거 이름은 임의의 문자열일 수 있지만 일반적으로 로그된 구성 요소의 패키지 이름 또는 클래스 이름(예: 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 |
이 |
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 개체는 특정 시스템 또는 애플리케이션 구성 요소에 대한 메시지를 기록하는 데 사용됩니다. |