iPhoneのアイデアシートは頂いたものはあるんだけど、Androidの無かったし、探してもGalaxyNexusのは無かったっぽいので、GalaxyNexusのアイデアシート。
こんな感じ
欲しい方はPDFどーぞ
Log.d(TAG, "hogehoge");こんな風に使うのが一般的なのですが、これをいろんな場所に組み込んでログを出力してると、後でめんどうなことになります。
public final class BuildConfig {
public final static boolean DEBUG = true;
}
このDEBUGはデバッグビルドの時はtrueのままですが、リリースビルドの時falseになります。if (BuildConfig.DEBUG) {
Log.d(TAG, "hogehoge");
}
public class Logger {
private static final String TAG = "MyApplication";
public static final void d(String msg) {
if (BuildConfig.DEBUG) {
Log.d(TAG, msg);
}
}
public static final void d(String tag, String msg) {
if (BuildConfig.DEBUG) {
Log.d(tag, msg);
}
}
public static final void e(String msg) {
if (BuildConfig.DEBUG) {
Log.e(TAG, msg);
}
}
public static final void e(String tag, String msg) {
if (BuildConfig.DEBUG) {
Log.e(tag, msg);
}
}
public static final void i(String msg) {
if (BuildConfig.DEBUG) {
Log.i(TAG, msg);
}
}
public static final void i(String tag, String msg) {
if (BuildConfig.DEBUG) {
Log.i(tag, msg);
}
}
public static final void v(String msg) {
if (BuildConfig.DEBUG) {
Log.v(TAG, msg);
}
}
public static final void v(String tag, String msg) {
if (BuildConfig.DEBUG) {
Log.v(tag, msg);
}
}
public static final void w(String msg) {
if (BuildConfig.DEBUG) {
Log.w(TAG, msg);
}
}
public static final void w(String tag, String msg) {
if (BuildConfig.DEBUG) {
Log.w(tag, msg);
}
}
public static final void heap(){
heap(TAG);
}
public static final void heap(String tag) {
if (BuildConfig.DEBUG){
String msg = "heap : Free=" + Long.toString(Debug.getNativeHeapFreeSize() / 1024) + "kb" +
", Allocated=" + Long.toString(Debug.getNativeHeapAllocatedSize() / 1024) + "kb" +
", Size=" + Long.toString(Debug.getNativeHeapSize() / 1024) + "kb";
Log.v(tag, msg);
}
}
}
このクラスを適当な場所に置いて、ログ出力したい箇所でLogger.d("hogehoge");
// もしくは
Logger.d(TAG, "hogehoge");
とすると、いつもと同じようにログ出力ができます。もちろんリリースビルド時にはログが出力されません。