[Crash] SDK 설정
IMQA Crash는 다양한 옵션이 존재하며, 사용자가 원하는 설정을 추가하여 더욱 자세한 크래시 리포트를 받아 보실 수 있습니다.
IMQA Crash Agent 에서는 다음과 같은 사용자 정의 에러를 수집할 수 있습니다. Exception 객체와 함께 특정 태그, 에러의 등급을 지정할 수 있습니다.
try {
...
} catch (SomeException e) {
IMQACrashAgent.SendException(e, "ERROR TAG", ErrorRank.Major);
}
에러 랭크의 경우 별도로 정해져있지는 않으며 앱의 구성에 따라 변경하여 사용가능합니다.
Rank | Description |
---|---|
ErrorRank.Unhandle | 기본이 되는 에러 등급으로 처리하지 못한 크래시에 사용 |
ErrorRank.Critical | 앱에 상당한 영향을 주는 크래시 일 경우 |
ErrorRank.Major | 앱에 영향이 있는 크래시 일 경우 |
ErrorRank.Minor | 앱에 큰 영향이 없는 크래시 일 경우 |
EventPath는 사용자의 기기에서 앱이 어떤 경로로 동작하는지 파악하는 기능입니다. 이를 사용하기 위해서는 클래스에 EventPath 추적 코드를 넣어주어야 합니다. 추적코드에 ‘STEP’ 과 ‘LABEL’에 해당되는 내용을 넣어줍니다.
STEP | LABEL |
---|---|
수집할 콜스택의 단계, 해당 스텝의 클래스명, 함수이름, 호출 위치를 가지고 옵니다. | 수집된 EventPath 의 별칭, 크래시 정보 창에서 EventPath의 각 발생 위치를 별칭으로 보여줍니다. |
public void onClickSomething() {
EventPathManager.CreateEventPath(STEP, LABEL);
}
크래시 발생시 사용자를 구분하기 위한 커스텀한 ID를 부여할 수 있습니다. 유저 정보를 등록한 후에는 발생하는 크래시에서 사용자 정보가 포함되어 보여집니다.
Class Name | Method Name | Description |
---|---|---|
IdentifierCollector | setUserId(STRING) | 사용자 ID를 등록합니다. |
IdentifierCollector | setUserName(STRING) | 사용자 이름을 등록합니다. |
IdentifierCollector | setUserMail(STRING) | 사용자 이메일을 등록합니다. |
IdentifierCollector.setUserId("10"); // 사용자 ID를 등록합니다.
IdentifierCollector.setUserName("My User Name"); // 사용자 이름을 등록합니다.
IdentifierCollector.setUserMail("My User Email"); // 사용자 이메일을 등록합니다.
크래시가 발생하기 전에 원하는 로그를 개발자가 직접 추가로 남길 수 있습니다. (최대 100개)
Class Name | Method Name | Description |
---|---|---|
CustomLogCollector | log(STRING) | 로그를 일반 문자열로 남깁니다. |
CustomLogCollector | log(KEY, VALUE) | 로그를 키:값 형태로 남깁니다. |
CustomLogCollector.log("test log"); // 로그를 일반 문자열로 남깁니다.
CustomKeyCollector.log("My Key", "My Log"); // 로그를 키:값 형태로 남깁니다.
IMQAController 초기화 시 옵션을 지정할 수 있습니다. IMQA Crash 모드를 파라미터나 Option을 이용해 변경할 수 있습니다.
Class Name | Method Name | Text |
---|---|---|
IMQAOption | setDirectUploadFlag(BOOL) | 업로드 모드를 설정합니다. false 로 설정할 경우 debug mode 에서도 동작합니다. |
IMQAOption | setPrintLog(BOOL) | Log 출력 여부를 설정합니다. true 로 설정할 경우 IMQA 의 Log가 출력됩니다. |
IMQAOption | setAnrOn(BOOL) | ANR 을 모니터링 여부를 설정합니다. false 로 설정할 경우 ANR은 크래시 수집에서 제외됩니다. |
IMQAOption | setAnrTimeoutIntercal(int) | ANR 타임아웃이 발생하는 시간을 설정합니다. (milliseconds 단위) |
MyApplication.java
@Override
public void onCreate() {
super.onCreate();
io.imqa.core.IMQAOption imqaOption = new io.imqa.core.IMQAOption();
/*
* 기본값 : true
* ANR 정보 수집 여부를 설정합니다.
* true : ANR 발생 여부를 모니터링 합니다.
Last modified 9mo ago