Logcatで確認するために、デバッグ出力をログに書き込みたいです。
System.outに何かを書き込むと、これはすでにlogcatに表示されます。
ログに書き込み、出力にレベルとタグを追加するクリーンな方法は何ですか?
Android.util.Log
を調べます。さまざまなログレベルでログに書き込むことができ、異なるタグを指定して出力をグループ化できます。例えば
Log.w("myApp", "no network");
タグmyAppとメッセージno networkを含む警告を出力します。
LogCatの出力は非常に長い場合があるため、タグは出力を簡単に見つけるために使用されます。クラスのどこかで定義できます:
private static final String TAG = "myApp";
デバッグ時に使用します
Log.v(TAG、 "did something");
フィルターを適用して、タグのみを検索することもできます。
Android.util.Log
およびそこで定義されている静的メソッド(e()
、w()
など)を使用します。
import Android.util.Log;
その後
Log.i("the your message will go here");
このようにログを見てください、
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)
最近、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);
}
}
String one = object.getdata();
Log.d(one,"");
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