Android アプリを開発するときは、常に例外をログに記録します。そして、e.printStackTrace() や不要なログが出力されないようにフォーマットと戦略を標準化したいですか?
では、最善の戦略は何ですか?
Log.x(String tag, String msg, Throwable tr)
to
を実装しましょ
Log.x(tag, msg+tr.toString())
うか?
いくつかの提案を教えてください!
Android アプリを開発するときは、常に例外をログに記録します。そして、e.printStackTrace() や不要なログが出力されないようにフォーマットと戦略を標準化したいですか?
では、最善の戦略は何ですか?
Log.x(String tag, String msg, Throwable tr)
to
を実装しましょ
Log.x(tag, msg+tr.toString())
うか?
いくつかの提案を教えてください!
Log
クラスを作成します。各クラスに、代わりにこれをインポートさせますandroid.util.Log
public class Log{
public static final boolean enableInfo = false;
public static final boolean enableError = true;
public static final boolean enableDebug = true;
public static final boolean enableVerbose = false;
public static void i(String tag, String msg) {
if(enableInfo) {
android.util.Log.i(tag,msg);
}
}
public static void e(String tag, String msg) {
if(enableError) {
android.util.Log.e(tag,msg);
}
}
public static void e(String tag, String msg, Exception e) {
if(enableError) {
android.util.Log.e(tag,msg, e);
}
}
public static void v(String tag, String msg) {
if(enableVerbose) {
android.util.Log.v(tag,msg);
}
}
public static void d(String tag, String msg) {
if(enableDebug) {
android.util.Log.d(tag,msg);
}
}
}
この手法を使用すると、アプリケーションをリリースするためにビルドを作成する必要がある場合などに、単一のファイルの定数を変更するだけで、アプリケーション全体のログを有効または無効にできます。
public static final boolean enableInfo = false;
public static final boolean enableError = true;
public static final boolean enableDebug = true;
public static final boolean enableVerbose = false;
例外はエラーであるため、それらを強調するために、私は常に Android で Log.e を使用することを好みます。私は常に Log.e(LOG_TAG,e.getMessage()); を使用します。例外/スロー可能なメッセージは、短くても意味のあるものにしたいと常に思っています。Log.e(LOG_TAG,"Divide by zero error"); のような独自のログ メッセージを出力できる場合があります。
どちらがより適しているかはあなた次第です。
あなたは間違いなく Log.e/w/d/i を使用したいです私はそれを別の関数呼び出しにラップして、リリースバージョンでそれらを非表示にできますが、関数呼び出しでブール定数をテストするだけです