msfjarvis / TraceLog

Kotlin compiler plugin to emit method execution metadata in logging

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TraceLog Maven Central

Kotlin compiler plugin to automate println debugging, because debuggers are for people smarter than me.

Installation

Apply the Gradle plugin to your Kotlin project

plugins {
  id("dev.msfjarvis.tracelog") version "0.1.3"
}

Optionally configure the annotation class and logger method (defaults shown below)

traceLog {
  loggerFunction.set("kotlin.io.println")
  annotationClass.set("dev/msfjarvis/tracelog/runtime/annotations/DebugLog")
}

The loggerFunction parameter must be a fully qualified to a static method with a single parameter of the type Any?.

fun recordMessage() {} // Bad, no parameter
fun recordMessage(p0: String, p1: Int) {} // Bad, multiple parameters and incorrect types
fun recordMessage(p0: Any?) {} // Good, single parameter with correct type

Note

Due to a limitation in how TraceLog resolves the logger function, you might need to add @JvmStatic on the method for TraceLog to be able to find it. This will be fixed in a future release.

Usage

Currently, this prints out a basic textual representation of the method's inputs and execution time. That is, given this code:

@DebugLog
fun debuggableFunction(p0: String): String {
  return "Debugging is cool!"
}

fun main() {
  debuggableFunction("First parameter")
}

The compiler plugin will generate code that writes the following messages

⇢ debuggableFunction(p0=First parameter)
⇠ debuggableFunction [214.209us] = Debugging is cool!

Compatibility

Kotlin Version TraceLog Version
1.9.0 0.1.x

About

Kotlin compiler plugin to emit method execution metadata in logging

License:Apache License 2.0


Languages

Language:Kotlin 100.0%