Bagaimana cara menulis output ke Log in Android?

153

Saya ingin menulis beberapa hasil debugging ke log untuk memeriksanya dengan logcat.

Jika saya menulis sesuatu ke System.out ini sudah ditampilkan di logcat.

Apa cara bersih untuk menulis ke log dan menambahkan level dan tag ke output saya?

Janusz
sumber

Jawaban:

211

Lihatlah ke dalam android.util.Log. Ini memungkinkan Anda menulis ke log dengan berbagai level log, dan Anda dapat menentukan tag berbeda untuk mengelompokkan output. Sebagai contoh

Log.w("myApp", "no network");

akan menampilkan peringatan dengan tag myApp dan pesan no network.

Erich Douglass
sumber
apa bedanya dengan menggunakan log.d?
JMASTER B
5
wdi Log.w(...)singkatan peringatan. Ada lebih banyak versi: d- debug, e- error, i- info, v- verbose, wtf- Kegagalan yang Mengerikan. ;-)
patryk.beza
20

Tag hanya digunakan untuk dengan mudah menemukan output Anda, karena Output dari LogCat terkadang sangat panjang. Anda dapat mendefinisikan suatu tempat di kelas Anda:

private String akhir statis TAG = "myApp";

dan menggunakannya saat debugging

Log.v (TAG, "melakukan sesuatu");

masukkan deskripsi gambar di sini

Anda juga dapat menerapkan Filter untuk hanya mencari tag.

pengguna1767754
sumber
17

Gunakan android.util.Logdan metode statis yang ditentukan di sana (misalnya e(),, w()).

CommonsWare
sumber
8
import android.util.Log;

lalu

Log.i("the your message will go here"); 
Atreya Rath
sumber
5

Silakan lihat log seperti ini,

Log.e("ApiUrl = ", "MyApiUrl") (error)
Log.w("ApiUrl = ", "MyApiUrl") (warning)
Log.i("ApiUrl = ", "MyApiUrl") (information)
Log.d("ApiUrl = ", "MyApiUrl") (debug)
Log.v("ApiUrl = ", "MyApiUrl") (verbose)
Dnyaneshwar Panchal
sumber
1

Anda dapat menggunakan perpustakaan saya yang disebut RDALogger. Berikut ini tautan github .

Dengan perpustakaan ini, Anda dapat mencatat pesan Anda dengan nama metode / nama kelas / nomor baris dan tautan jangkar. Dengan tautan ini, ketika Anda mengklik log, layar menuju ke baris kode ini.

Untuk menggunakan perpustakaan, Anda harus melakukan implementasi di bawah ini.

di tingkat akar kelas

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

di tingkat tingkat aplikasi

dependencies {
            implementation 'com.github.ardakaplan:RDALogger:1.0.0'
    }

Untuk menginisialisasi perpustakaan, Anda harus mulai seperti ini (di Application.class atau sebelum digunakan pertama kali)

RDALogger.start("TAG NAME").enableLogging(true);

Dan daripada Anda dapat login apa pun yang Anda inginkan;

    RDALogger.info("info");
    RDALogger.debug("debug");
    RDALogger.verbose("verbose");
    RDALogger.warn("warn");
    RDALogger.error("error");
    RDALogger.error(new Throwable());
    RDALogger.error("error", new Throwable());

Dan akhirnya output menunjukkan semua yang Anda inginkan (nama kelas, nama metode, tautan jangkar, pesan)

08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29)   ///   IN METHOD : onCreate
    info
Arda
sumber
0

Baru-baru ini saya menemukan pendekatan ini untuk menulis log di android, yang saya pikir sangat luar biasa.

public static final boolean FORCED_LOGGING = true;
private static final int CALLER_STACK_INDEX = 3;

public static void showLogs(String message) {
        if (FORCED_LOGGING) {
            StackTraceElement caller = Thread.currentThread().getStackTrace()[CALLER_STACK_INDEX];

            String fullClassName = caller.getClassName();
            String className = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);
            String methodName = caller.getMethodName();
            int lineNumber = caller.getLineNumber();

            Log.i("*** " + className + "." + methodName + "():" + lineNumber + "\n" , message);
        }
    }
Tushar Pandey
sumber