Coverage Summary for Class: LoggerNames_jvmAndAndroidKt (com.javiersc.mokoki.internal)
  | Class | 
  Class, %
 | 
  Method, %
 | 
  Branch, %
 | 
  Line, %
 | 
  Instruction, %
 | 
  | LoggerNames_jvmAndAndroidKt | 
  
    100%
  
  
    (1/1)
  
 | 
  
    100%
  
  
    (7/7)
  
 | 
  
    57.1%
  
  
    (16/28)
  
 | 
  
    78.6%
  
  
    (11/14)
  
 | 
  
    84.5%
  
  
    (142/168)
  
 | 
 package com.javiersc.mokoki.internal
 
 internal actual val fileName
     get() = "file ${stackTrace?.fileName ?: "Unknown"}"
 
 internal actual val className
     get() = "class ${stackTrace?.className?.split(".")?.lastOrNull() ?: "Unknown"}"
 
 internal actual val methodName
     get() = "fun ${stackTrace?.methodName ?: "Unknown"}"
 
 internal actual val lineNumber
     get() = "line ${stackTrace?.lineNumber ?: "Unknown"}"
 
 internal actual val fileLink
     get() = "(${stackTrace?.fileName}:${stackTrace?.lineNumber})"
 
 private val stackTrace: StackTraceElement?
     get() =
         try {
             val trace = Thread.currentThread().stackTrace
             val index = trace.indexOfLast { it.isLogFunction }
             trace[index + 1]
         } catch (throwable: Throwable) {
             println("Mokoki has not been able to get the StackTrace")
             null
         }
 
 private val StackTraceElement.isLogFunction: Boolean
     get() =
         Regex("""^(com.javiersc.mokoki.+)*(.log\()""").containsMatchIn("$this") &&
             Regex("""(.kt:)+(\d)+(\))+$""").containsMatchIn("$this")