Kotlin Android print to console

I've written some extension functions that make use of reified type parameters in order to avoid dealing with declaring log tags in all project's classes. The basic idea is shown by the following snippet:

inline fun <reified T> T.logi(message: String) = Log.i(T::class.java.simpleName, message)

Basically, you can log something to the logcat with the following invocation (W/O external dependencies):

logi("My log message")

You can find a gist here. The functions declared in the gist are a little more elaborated given that they allow:

  • Lazy evaluation of the string to be logged out (if for example the string needs to be generated in some way)
  • Logging only when in debug mode by default
  • Use a given class name when you need to log from within an anonymous class that has no name

At this moment (android studio 2.3.3 with Kotlin plugin),

Log.i(TAG, "Hello World")

Just works. It will import android.util.Log


androidKotlin is deprecated and use Anko instead.

https://github.com/Kotlin/anko/wiki/Anko-Commons-%E2%80%93-Logging

class SomeActivity : Activity(), AnkoLogger {
    private fun someMethod() {
        info("London is the capital of Great Britain")
        debug(5) // .toString() method will be executed
        warn(null) // "null" will be printed
    }
}

There are a couple of ways.

You can use Log.d("TAG", "message"); for example but first you need to import Log.

import android.util.Log

{...}

Log.d("TAG", "message")

{...}

Source: https://developer.android.com/reference/android/util/Log.html

You can also use kotlin's print and println function.

Example:

{...}

print("message")

println("other message")

{...}

Source: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/