Imprima todos los types de file de inicio de session usando registrador

Tengo un escenario para configurar el registrador en mi aplicación. Siempre que construyo mi aplicación con Logger (configurado como VERBOSE), entonces quiero escribir todos los loggings relacionados con Log.v en algún file de text. Para eso he preparado una class de registrador desde donde puedo get todas las cosas relacionadas con el logging como VERBOSE, DEBUG, etc.

Pero todo el time solo obtengo loggings relacionados con el nivel de debugging. Si estoy configurando el nivel de logging como VERBOSE o si no, también imprimo Log.d solo loggings relacionados.

Aquí está mi código para verificar diferentes types de nivel de logging y luego almacenarlo en algún file y he hecho ese código en mi class de aplicación en el método oncreate ().

if (Log.isLoggable(TAG, Log.DEBUG)) { Logger.log(Logger.LogState.D, TAG, "Login DEBUG"); } if (Log.isLoggable(TAG, Log.INFO)) { Logger.log(Logger.LogState.I, TAG, "Login INFO"); } else if (Log.isLoggable(TAG, Log.WARN)) { Logger.log(Logger.LogState.W, TAG, "Login WARN"); } else if (Log.isLoggable(TAG, Log.ERROR)) { Logger.log(Logger.LogState.E, TAG, "Login ERROR"); } else if (Log.isLoggable(TAG, Log.VERBOSE)) { Logger.log(Logger.LogState.V, TAG, "Login VERBOSE"); } if (isExternalStorageWritable()) { val appDirectory = File("/sdcard/" + "TelAfric") val logDirectory = File(appDirectory , "/log") val logFile = File(appDirectory, "logcat" + System.currentTimeMillis() + ".txt") // create app folder if (!appDirectory.exists()) { appDirectory.mkdir() } // create log folder if (!logDirectory.exists()) { logDirectory.mkdir() } // clear the previous logcat and then write the new one to the file try { var process = Runtime.getRuntime().exec("logcat -c") process = Runtime.getRuntime().exec("logcat -f $logFile *:S MainActivity:D Login:D Contacts:D") } catch (e: IOException) { e.printStackTrace() } } 

Y a continuación se muestra el método para verificar el almacenamiento externo con capacidad de escritura o no.

 fun isExternalStorageWritable(): Boolean { val state = Environment.getExternalStorageState() if (Environment.MEDIA_MOUNTED.equals(state)) { return true } return false } 

¿Alguien tiene alguna idea? ¿Por qué solo se imprimen loggings relacionados con el nivel "DEBUG" en el file de text generado? y si alguien tiene una mejor idea para imprimir loggings en Logcat solo entonces también me ayuda a hacer que mi escenario funcione.