Log.wtf ()는 Log.e ()와 어떻게 다릅니 까?
나는 살펴 보았다 android.util.Log에 대한 설명서 및 확실 정확히 무슨 차이가 아니에요 Log.e()
하고 Log.wtf()
있다. 하나가 다른 것보다 선호됩니까? 기능상의 차이가 있습니까? 확실히 그들은 중복되지 않습니다.
미래 독자를위한 참고 사항 :이 질문을 받았을 때 이에 대한 문서는 훨씬 명확하지 않았습니다. 위의 링크를 따라 가면 문제가 해결 된 것입니다.
심각도에는 차이가 있습니다.
Log.e()
우선 순위가 ERROR 인 로그에 오류를 기록합니다.
Log.wtf()
우선 순위 수준 ASSERT로 오류를 기록하고 (시스템 구성에 따라) 오류 보고서를 보내고 프로그램을 즉시 종료 할 수 있습니다.
Log.e()
우선 순위가 ERROR 인 로그에 단순히 오류를 기록하는 것입니다.
Log.wtf()
(끔찍한 실패) 오류 로그보다 더 심각합니다. 결코 일어나지 않았던 오류. 프로그램을 종료하기 전에 장치가 로그 쓰기를 보류하도록 할 수 있습니다.
Log.wtf()
Log.e()
그러나 Log.wtf()
일반적으로 매우 예기치 않은 상황에 사용되는 것과 비슷 합니다.
Log.e()
우선 순위가 ERROR 인 로그 도 기록합니다. 그러나 Log.wtf()
오류 의 경우 항상 호출 스택과 함께 ASSERT 수준에서 기록됩니다.
처음에는 농담이라고 생각했지만 https://developer.android.com/reference/android/util/Log.html 이 있습니다.
Android를 사랑해야하는 또 하나의 이유 <3
다른 로깅 유형과 마찬가지로 로그 메시지에 대한 또 다른 레이블 유형이라는 것을 이해합니다. log.i는 어떤 일이 발생하는 위치에 대한 정보입니다. log.e는 발생할 수있는 오류를위한 것입니다. log.wtf는 발생하지 않는 오류를위한 것입니다. 나는 그것이 단지 convienience라고 생각하므로 Log ( "ERROR :", "an error") 및 Log ( "INFO :", "information")과 같은 것은 없습니다.
실제로 이것은 Android SDK의 문서 오류 일 수 있습니다. 놀라운 일입니다. Doc은 다음과 같이 말합니다.
오류는 항상 호출 스택과 함께 ASSERT 수준에서 기록됩니다.
그러나 소스 코드는 다음과 같이 말합니다.
static int wtf(int logId, String tag, String msg, Throwable tr, boolean localStack, boolean system) {
...
int bytes = printlns(logId, ERROR, tag, msg, localStack ? what : tr);
...
}
따라서 Log.wtf ()와 Log.e ()는 모두 동일한 우선 순위 인 ERROR를 갖습니다.
차이점은 Log.wtf ()가 onTerribleFailure () 콜백을 호출한다는 것입니다. "현재 프로세스의 심각한 오류를보고합니다. 프로세스가 종료 될 수도 있고 종료되지 않을 수도 있습니다 (시스템 설정에 따라 다름)."
즉, Log.wtf ()로 인해 앱이 중단 될 수 있습니다.
다음은 코드 스 니펫입니다.
if (ActivityManager.getService().handleApplicationWtf(
mApplicationObject, tag, system,
new ApplicationErrorReport.ParcelableCrashInfo(t))) {
// The Activity Manager has already written us off -- now exit.
Process.killProcess(Process.myPid());
System.exit(10);
}
나는 wtf (끔찍한 실패)가 애플리케이션의 심각한 예외 / 문제를보고하는 데 사용된다고 생각합니다 (예 : 디버그 콘솔에보고).
log.e는 오류를보고하는 데 사용되지만 그렇게 심각하지는 않습니다.
ROM 레이어에서 작업하기 전까지는 이것을 몰랐습니다.
Log.wtf ()는 특정 조건이 설정되면 프로세스를 종료합니다. 시스템 서비스가 항상 충돌하는 이유에 대해 꽤 혼란 스러웠습니다. Log.wtf ()를 사용했고 "발생해서는 안되는"무언가에 대해 해고되었습니다.
참고 URL : https://stackoverflow.com/questions/9524369/how-does-log-wtf-differ-from-log-e
'Development Tip' 카테고리의 다른 글
Enum.HasFlag를 그렇게 느리게 만드는 것은 무엇입니까? (0) | 2020.11.21 |
---|---|
JavaScript 객체를 "잠금"하면 성능상의 이점이 있습니까? (0) | 2020.11.21 |
"Hello, World!"는 무엇입니까? (0) | 2020.11.21 |
속성 라우팅 및 상속 (0) | 2020.11.21 |
Dagger와 ButterKnife Android의 차이점 (0) | 2020.11.21 |