Skip to content

Instantly share code, notes, and snippets.

@mdellavo
Last active December 17, 2015 12:09
Show Gist options
  • Save mdellavo/5607724 to your computer and use it in GitHub Desktop.
Save mdellavo/5607724 to your computer and use it in GitHub Desktop.
A Drop in wrapper for Android's Log class which provides compile time exclusion of debug logging statements and format strings to eliminate heavy string building in release builds
public class Log {
private final String mTag;
private static String sPrefix;
public static void setsPrefix(final String prefix) {
sPrefix = prefix;
}
public static String buildTag(final String tag) {
return sPrefix == null ? tag : sPrefix + ":" + tag;
}
public static void d(final String tag, final String message, final Object...args) {
if (BuildConfig.DEBUG) {
android.util.Log.d(buildTag(tag), String.format(message, args));
}
}
public static void d(final String tag, final String message, final Throwable tr, Object...args) {
if (BuildConfig.DEBUG) {
android.util.Log.d(buildTag(tag), String.format(message, args), tr);
}
}
public static void v(final String tag, final String message, final Object...args) {
if (BuildConfig.DEBUG) {
android.util.Log.v(buildTag(tag), String.format(message, args));
}
}
public static void v(final String tag, final String message, final Throwable tr, Object...args) {
if (BuildConfig.DEBUG) {
android.util.Log.v(buildTag(tag), String.format(message, args), tr);
}
}
public static void i(final String tag, final String message, final Object...args) {
if (BuildConfig.DEBUG) {
android.util.Log.i(buildTag(tag), String.format(message, args));
}
}
public static void i(final String tag, final String message, final Throwable tr, Object...args) {
if (BuildConfig.DEBUG) {
android.util.Log.i(buildTag(tag), String.format(message, args), tr);
}
}
public static void e(final String tag, final String message, final Object...args) {
android.util.Log.e(buildTag(tag), String.format(message, args));
}
public static void e(final String tag, final String message, final Throwable tr, Object...args) {
android.util.Log.e(buildTag(tag), String.format(message, args), tr);
}
public static void w(final String tag, final String message, final Object...args) {
android.util.Log.w(buildTag(tag), String.format(message, args));
}
public static void w(final String tag, final String message, final Throwable tr, Object...args) {
android.util.Log.e(buildTag(tag), String.format(message, args), tr);
}
public Log(final String tag) {
mTag = tag;
}
public Log(final Class klass) {
this(klass.getName());
}
public void d(final String message, final Object...args) {
Log.d(mTag, message, args);
}
public void d(final String message, final Throwable tr, Object...args) {
Log.d(mTag, message, tr, args);
}
public void v(final String message, final Object...args) {
Log.v(mTag, message, args);
}
public void v(final String message, final Throwable tr, Object...args) {
Log.v(mTag, message, tr, args);
}
public void i(final String message, final Object...args) {
Log.i(mTag, message, args);
}
public void i(final String message, final Throwable tr, Object...args) {
Log.i(mTag, message, tr, args);
}
public void e(final String message, final Object...args) {
Log.e(mTag, message, args);
}
public void e(final String message, final Throwable tr, Object...args) {
Log.e(mTag, message, tr, args);
}
public void w(final String message, final Object...args) {
Log.w(mTag, message, args);
}
public void w(final String message, final Throwable tr, Object...args) {
Log.d(mTag, message, tr, args);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment