web-dev-qa-db-ja.com

Androidのログに出力を書き込むにはどうすればよいですか?

Logcatで確認するために、デバッグ出力をログに書き込みたいです。

System.outに何かを書き込むと、これはすでにlogcatに表示されます。

ログに書き込み、出力にレベルとタグを追加するクリーンな方法は何ですか?

141
Janusz

Android.util.Log を調べます。さまざまなログレベルでログに書き込むことができ、異なるタグを指定して出力をグループ化できます。例えば

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

タグmyAppとメッセージno networkを含む警告を出力します。

196
Erich Douglass

LogCatの出力は非常に長い場合があるため、タグは出力を簡単に見つけるために使用されます。クラスのどこかで定義できます:

private static final String TAG = "myApp";

デバッグ時に使用します

Log.v(TAG、 "did something");

enter image description here

フィルターを適用して、タグのみを検索することもできます。

19
user1767754

Android.util.Logおよびそこで定義されている静的メソッド(e()w()など)を使用します。

17
CommonsWare
import Android.util.Log;

その後

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

このようにログを見てください、

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)
3

最近、Androidでログを書き込むこのアプローチを見つけました。これは非常に素晴らしいと思います。

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);
        }
    }
0
Tushar Pandey
String one = object.getdata();
Log.d(one,"");
0
Vickie Kangare

RDALoggerと呼ばれる私のライブラリを使用できます。 github link です。

このライブラリを使用すると、メソッド名/クラス名/行番号およびアンカーリンクを使用してメッセージを記録できます。このリンクを使用すると、ログをクリックすると、このコード行に画面が移動します。

ライブラリを使用するには、以下の実装を行う必要があります。

ルートレベルのグラドル

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

アプリレベルのgradle

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

ライブラリを初期化するには、このように開始する必要があります(Application.classで、または最初に使用する前に)

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

そして、あなたが望むものは何でも記録することができます。

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

最後に、必要なものすべて(クラス名、メソッド名、アンカーリンク、メッセージ)が出力されます。

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