Programming/Android Java
앱에서 Logcat 보여주기
by 개Foot/Dog발?!
2014. 7. 26.
URL :
https://code.google.com/p/weathermusic/source/browse/trunk/LogToaster/src/org/devtcg/tools/logcat/LogcatProcessor.java /* TODO: Support logcat filtering. */ private ArrayList<String> LOGCAT_CMDS = new ArrayList<String>(); private static final int BUFFER_SIZE = 1024; ..... public LogcatProcessor(String name) { super(name); LOGCAT_CMDS.add("logcat"); LOGCAT_CMDS.add("-v"); LOGCAT_CMDS.add("brief"); } ..... public void run(){ try { synchronized (LOGCAT_CMDS) { String[] cmds = new String[LOGCAT_CMDS.size()]; LOGCAT_CMDS.toArray(cmds); mLogcatProc = Runtime.getRuntime().exec(cmds); } } catch (IOException e){ onError("Can't start " + LOGCAT_CMDS.get(0), e);으 return; }
BufferedReader reader = null;
try { reader = new BufferedReader( new InputStreamReader(mLogcatProc.getInputStream()), BUFFER_SIZE); String line; while ((line = reader.readLine()) != null){ onNewline(line); mLines++; } } catch (IOException e){ e.printStackTrace(); onError("Error reading from logcat process", e); } finally { if (reader != null) try { reader.close(); } catch (IOException e) {} stopCatter(); } } |
* 참고로 Jellybean 인 4.2부터 root권한이 없으면, 자신의 앱과 관련된 프로세스외에 다른 로그를 볼 수가 없다.
* 또한 4.2이전에서는 "android.permission.READ_LOGS" 권한이 있어야 로그를 가져올 수 있어서, 이 권한을 AndroidManifest.xml에 기술하지 않으면 앱이 실행은 되어도 로그를 가져오지 못하였다.
하지만, 4.2부터 자신의 로그만 기본적으로 볼 수 있게 되면서 이 권한이 없어도 자신의 로그는 접근이 가능하다.
* android Logcat을 기록하는 /dev/log에 권한이 바뀐것으로 보인다.