2016-07-22 21 views
4

Ich muss einige Str zu Konsole (Android Studio) mit Kotlin drucken. Ich habe versucht, die:Kotlin Android Druck auf Konsole

Log.v() 
Log.d() 
Log.i() 
Log.w() 
Log.e() 

Methoden. Aber es scheint nur auf Java zu funktionieren. Was soll ich zum Drucken mit Kotlin verwenden? Danke

+0

Alle Java-Methoden arbeiten auch mit Kotlin. Was genau meinst du mit "es scheint zu funktionieren"? – yole

Antwort

4

Es gibt ein paar Möglichkeiten.

Sie können Log.d("TAG", "message"); zum Beispiel verwenden, aber zuerst müssen Sie Log importieren.

import android.util.Log 

{...} 

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

{...} 

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

Sie können auch drucken und println Funktion verwenden Kotlin.

Beispiel:

{...} 

print("message") 

println("other message") 

{...} 

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

+5

Kotlin Print und Println Funktionen nicht auf dem Android-Protokoll drucken. – yole

+1

True, sie drucken auf die Standardausgabe, wie in den Dokumenten angegeben, die ich als Quelle eingerichtet habe. Aber die Frage war in der Tat über das Drucken auf Konsole, nicht unbedingt das Android-Protokoll. Ich denke, es passt immer noch =) – Ramalus

2

androidKotlin ist veraltet und verwenden Sie stattdessen Anko.

https://github.com/Kotlin/anko/blob/master/doc/ADVANCED.md#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 
    } 
} 
+1

Wie in der README der verbundenen Bibliothek angegeben, ist es veraltet. [Anko] (https://github.com/kotlin/anko) sollte stattdessen verwendet werden. – yole

+0

Ich fürchte, ich habe diesen Teil nicht bemerkt.Ich werde die Antwort aktualisieren –

1

Sie Anko Bibliothek verwenden können, es zu tun. Sie würden Code wie unten haben:

class MyActivity : Activity(), AnkoLogger { 
    private fun someMethod() { 
     info("This is my first app and it's awesome") 
     debug(1234) 
     warn("Warning") 
    } 
} 

oder Sie können auch diese kleine in Kotlin Bibliothek geschrieben verwenden genannt StaticLog Code dann würde wie folgt aussieht:

Log.info("This is an info message") 
Log.debug("This is a debug message") 
Log.warn("This is a warning message","WithACustomTag") 
Log.error("This is an error message with an additional Exception for output", "AndACustomTag", exception) 

Log.logLevel = LogLevel.WARN 
Log.info("This message will not be shown")\ 

Die zweite Lösung besser wäre, wenn Sie möchten,

Log.newFormat { 
    line(date("yyyy-MM-dd HH:mm:ss"), space, level, text("/"), tag, space(2), message, space(2), occurrence) 
} 

oder Filter, beispielsweise: ein Ausgabeformat für Protokollierungsverfahren wie definiert

Log.filterTag = "filterTag" 
Log.info("This log will be filtered out", "otherTag") 
Log.info("This log has the right tag", "filterTag") 

Wenn Sie bereits Jake Whartons Protokollbibliothek Timber verwendet haben, überprüfen Sie dieses Projekt: https://github.com/ajalt/timberkt.

auch zu prüfen: Logging in Kotlin & Android: AnkoLogger vs kotlin-logging

Hoffen, dass es

0

in diesem Moment (android Studio 2.3.3 mit Kotlin Plugin) helfen, Log.i (TAG, "Hallo Welt") funktioniert einfach. Es importiert android.util.Log