I was stuck with a log values from one library that I was using in a project. The values that the library was producing were printed in Android studio logcat and visible. Some of those log values I needed inside my app, but there was no library function/method go get that kind of data. The idea was to cycle trough the log values and get what I needed. Here is the result:
Kotlin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
private fun readLogs() { try { val process = Runtime.getRuntime().exec("logcat -d") val bufferedReader = BufferedReader( InputStreamReader(process.inputStream) ) val log = StringBuilder() var line: String? = "" while (bufferedReader.readLine().also { line = it } != null) { log.append(line) } Timber.i("LOG---> ${log.toString()}") } catch (e: IOException) { Timber.i(e) } } |
Note:
The flag “-d” in “logcat -d” means –Dump the log to the screen and exits-.
If you want more options you should follow this link explaining the logcat in detail:
https://developer.android.com/studio/command-line/logcat