Kotlin Android打印到控制台

Pav*_*lev 28 printing android kotlin

我需要使用Kotlin将一些str打印到控制台(Android Studio).我试过了:

Log.v() 
Log.d() 
Log.i() 
Log.w() 
Log.e() 
Run Code Online (Sandbox Code Playgroud)

方法.但它似乎只适用于Java.我应该用Kotlin打印什么?谢谢

Ram*_*lus 51

有几种方法.

Log.d("TAG", "message");例如,您可以使用,但首先需要导入Log.

import android.util.Log

{...}

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

{...}
Run Code Online (Sandbox Code Playgroud)

资料来源:https://developer.android.com/reference/android/util/Log.html

您还可以使用kotlin的printprintln功能.

例:

{...}

print("message")

println("other message")

{...}
Run Code Online (Sandbox Code Playgroud)

资料来源:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/

  • Kotlin的print和println功能不会打印到Android日志. (31认同)
  • 没错,他们按照我设置为源文档中的说明打印到标准输出.但问题实际上是关于打印到控制台,不一定是android日志.我猜它仍然适合=) (2认同)

Ped*_*lez 7

此时(带有 Kotlin 插件的 android studio 2.3.3),

Log.i(TAG, "Hello World")
Run Code Online (Sandbox Code Playgroud)

就可以了。它将导入android.util.Log


Pao*_*olo 7

我编写了一些扩展函数,它们使用具体化的类型参数,以避免在所有项目的类中声明日志标记。以下代码段显示了基本思想:

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

基本上,您可以使用以下调用(W/O 外部依赖项)将某些内容记录到 logcat:

logi("My log message")
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到一个要点。要点中声明的函数更详细一点,因为它们允许:

  • 对要注销的字符串进行延迟评估(例如,如果需要以某种方式生成字符串)
  • 默认情况下仅在调试模式下记录
  • 当您需要从没有名称的匿名类中登录时,请使用给定的类名


Ye *_*ung 6

androidKotlin已被弃用,并使用安口来代替。

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

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
    }
}
Run Code Online (Sandbox Code Playgroud)

  • &gt;Anko 已弃用。请参阅此页面了解更多信息。https://github.com/Kotlin/anko/blob/master/GOODBYE.md (2认同)