Ich muss mit Kotlin einige str auf die Konsole (Android Studio) drucken. Ich habe das versucht:
Log.v()
Log.d()
Log.i()
Log.w()
Log.e()
Methoden. Aber es scheint nur auf Java zu funktionieren. Was sollte ich verwenden, um mit Kotlin zu drucken? Vielen Dank
Alle Java-Methoden funktionieren auch mit Kotlin. Was genau meinst du mit “scheint zu funktionieren”?
– Junge
22. Juli 2016 um 11:47 Uhr
Übrigens: Sie können die Protokollvorlagen verwenden, um den Code in Java zu generieren und ihn automatisch nach Kotlin zu konvertieren, indem Sie ihn kopieren und in eine Kotlin-Datei einfügen. Oder Sie können die Protokollvorlagen in Kotlin verfügbar machen, indem Sie den Kotlin-Port aus importieren dieses Github-Repo direkt. Importieren Sie einfach die .jar-Datei über ‘Datei > Einstellungen importieren…’.
– Tobias Uhmann
12. Mai 2018 um 9:49 Uhr
Es gibt ein paar Möglichkeiten.
Sie können verwenden Log.d("TAG", "message"); zum Beispiel, aber zuerst müssen Sie importieren Protokoll.
Die Funktionen print und println von Kotlin drucken nicht in das Android-Protokoll.
– Junge
22. Juli 2016 um 11:54 Uhr
Richtig, sie drucken auf die Standardausgabe, wie in den Dokumenten angegeben, die ich als Quelle eingerichtet habe. Aber die Frage bezog sich tatsächlich auf das Drucken auf die Konsole, nicht unbedingt auf das Android-Protokoll. Ich denke es passt noch =)
– ronniemagatti
22. Juli 2016 um 11:57 Uhr
@Ramalus Die ursprüngliche Frage hatte eine Android -Tag, aber es ist gut, beide einzuschließen, nehme ich an.
Ich habe einige Erweiterungsfunktionen geschrieben, die verifizierte Typparameter verwenden, um zu vermeiden, dass in allen Klassen des Projekts Protokolltags deklariert werden müssen. Die Grundidee zeigt das folgende Snippet:
inline fun <reified T> T.logi(message: String) = Log.i(T::class.java.simpleName, message)
Grundsätzlich können Sie mit folgendem Aufruf (OHNE externe Abhängigkeiten) etwas in den Logcat protokollieren:
logi("My log message")
Sie können ein Wesentliches finden hier. Die im Kern deklarierten Funktionen sind etwas ausführlicher, da sie Folgendes zulassen:
Verzögerte Auswertung des auszuloggenden Strings (wenn zum Beispiel der String irgendwie generiert werden muss)
Protokollierung nur im Debug-Modus standardmäßig
Verwenden Sie einen bestimmten Klassennamen, wenn Sie sich innerhalb einer anonymen Klasse anmelden müssen, die keinen Namen hat
Interessante Lösung. Ich weiß nicht, dass Sie eine dynamische Klassenmethode so definieren können.
– Chen Li Yong
17. Mai 2020 um 7:26 Uhr
Ye Lin Aung
androidKotlin ist veraltet und wird verwendet Anko stattdessen.
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
}
}
Wie in der README-Datei der verlinkten Bibliothek angegeben, ist sie veraltet. Anko sollte stattdessen verwendet werden.
– Junge
22. Juli 2016 um 11:48 Uhr
Ich fürchte, ich habe diesen Teil nicht bemerkt. Ich werde die Antwort aktualisieren
In diesem Moment (Android Studio 2.3.3 mit Kotlin-Plugin),
Log.i(TAG, "Hello World")
Funktioniert einfach. Es wird importiert android.util.Log
piotrek1543
Sie können verwenden Anko Bibliothek dazu. Sie hätten Code wie folgt:
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 geschriebene Bibliothek namens verwenden StaticLog dann würde dein Code so aussehen:
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 ist möglicherweise besser, wenn Sie ein Ausgabeformat für die Protokollierungsmethode wie folgt definieren möchten:
Alle Java-Methoden funktionieren auch mit Kotlin. Was genau meinst du mit “scheint zu funktionieren”?
– Junge
22. Juli 2016 um 11:47 Uhr
Übrigens: Sie können die Protokollvorlagen verwenden, um den Code in Java zu generieren und ihn automatisch nach Kotlin zu konvertieren, indem Sie ihn kopieren und in eine Kotlin-Datei einfügen. Oder Sie können die Protokollvorlagen in Kotlin verfügbar machen, indem Sie den Kotlin-Port aus importieren dieses Github-Repo direkt. Importieren Sie einfach die .jar-Datei über ‘Datei > Einstellungen importieren…’.
– Tobias Uhmann
12. Mai 2018 um 9:49 Uhr