안드로이드 개발 정보
(글 수 1,067)
안녕하세요.
APP를 마켓이나 T-Store등에 올려서 사용자가 사용하게 되면,
전혀 듣도 보도 못한 에러 난다는 이야기를 듣게 될 것입니다.
폰마다 표준을 안지키거나, 혹은 해당 폰의 버그 또나 미처 생각 못했던 내가 만든 버그등 때문에요.
그런데, 이 상황이 100% 재현이 되서 문제 증상만 들어도 고칠 수 있는 문제라면 그냥 고치면 되지만,
상황에 따라서 재현 증상이 달라서 사용자의 폰의 Logcat을 볼 필요가 있을 경우가 꽤 많답니다.
그런데, 사용자 대부분은 프로그래머가 아니라서 Logcat이 뭔지? adb가 뭔지 알지 못하는 경우가 대부분이죠.
이 상황에서 adb, logcat, 터미널 프로그램 들을 설명하면 logcat을 달라고 하면 ,
이것을 해 줄 수 있는 사용자는 거의 없다고 봐야 할듯합니다.
아무튼 이런 경우, logcat 정보를 얻는 방법에 대한 소개 입니다.
마켓의 프로그램 중에
APP를 마켓이나 T-Store등에 올려서 사용자가 사용하게 되면,
전혀 듣도 보도 못한 에러 난다는 이야기를 듣게 될 것입니다.
폰마다 표준을 안지키거나, 혹은 해당 폰의 버그 또나 미처 생각 못했던 내가 만든 버그등 때문에요.
그런데, 이 상황이 100% 재현이 되서 문제 증상만 들어도 고칠 수 있는 문제라면 그냥 고치면 되지만,
상황에 따라서 재현 증상이 달라서 사용자의 폰의 Logcat을 볼 필요가 있을 경우가 꽤 많답니다.
그런데, 사용자 대부분은 프로그래머가 아니라서 Logcat이 뭔지? adb가 뭔지 알지 못하는 경우가 대부분이죠.
이 상황에서 adb, logcat, 터미널 프로그램 들을 설명하면 logcat을 달라고 하면 ,
이것을 해 줄 수 있는 사용자는 거의 없다고 봐야 할듯합니다.
아무튼 이런 경우, logcat 정보를 얻는 방법에 대한 소개 입니다.
마켓의 프로그램 중에
"Quick System Info"
라고 하는 시스템 정보를 보여주는 툴이 있는데요.
이 프로그램을 이용하면 사용자도 쉽게 logcat를 얻을 수가 있답니다.
이 프로그램을 먼저 설치해야 겠지요. 마켓에 있답니다.
< Logcat 얻는 방법>
이 프로그램의 [Basic Info] 탭 아래 내려가면, 'View Logs' 라는 메뉴가 있습니다.
이것을 클릭하면 "Dmesg" 하고 "Logcat" 를 선택하는 대화상자가 나온는데요.
"Logcat"을 선택하면 logcat를 볼수가 있답니다.
Logcat이 보이는 상황에서 [Menu] 버튼을 눌러서 메뉴를 띄우면,
"Send To" 메뉴가 있답니다.
이것을 선택하면, BlueTooth, 메일, 트위터,... 등을 이용하여 현재 Logcat를 보낼 수가 있답니다.
원하시는 방법을 통해서 전달을 하시면 되겠습니다.
감사합니다.
2010.08.26 13:53:31
public final static String getLog(Context context) { String[] LOGCAT_CMD = new String[] { "logcat", "-d", "AndroidRuntime:E System.err:* APITask:* Utility:* ReTweetActivity:* ImagePreview:* TextPreview:* MovieView:* *:S" }; Process logcatProc = null; try { logcatProc = Runtime.getRuntime().exec(LOGCAT_CMD); } catch (IOException e) { e.printStackTrace(); return ""; } BufferedReader reader = null; String lineSeparatoer = System.getProperty("line.separator"); StringBuilder strOutput = new StringBuilder(); try { reader = new BufferedReader(new InputStreamReader( logcatProc.getInputStream()), BUFFER_SIZE); String line; while ((line = reader.readLine()) != null) { strOutput.append(line); strOutput.append(lineSeparatoer); } reader.close(); } catch (IOException e) { e.printStackTrace(); } return strOutput.toString(); }
위 코드를 이용하면 프로그램 상에서 가져올수 있습니다.
<uses-permission android:name="android.permission.READ_LOGS" />
퍼미션이 필요합니다.
<meta charset="utf-8">LOGCAT_CMD 의 3번째 파라메터에 로깅을 원하는 태그를 넣으시면 됩니다.
2.2부터는 market을 통해 FC를 보고 받을수 있어서 참 좋더라구요.
좋은 방법입니다.. 그리고 pro 버전도 무료이네요.