package de.nisble.droidsweeper.utilities;
import de.nisble.droidsweeper.BuildConfig;
import android.util.Log;
/** LogDog: The natural enemy of LogCat.
* <p>
* <b>Note:</b> Use the following ProGuard statement to completely remove all
* calls to Log:
*
* <pre>
* -assumenosideeffects class android.util.Log {
* public static *** v(...);
* public static *** d(...);
* public static *** i(...);
* public static *** w(...);
* }
* </pre>
*
* </p>
* @author Moritz Nisblé moritz.nisble@gmx.de */
public final class LogDog {
// private static final String CLASSNAME = LogDog.class.getSimpleName();
// public static void check() {
// Log.println(Log.ASSERT, CLASSNAME, "BuildConfig.DEBUG=" +
// BuildConfig.DEBUG);
// Log.println(Log.ASSERT, CLASSNAME, "Log.isLoggable(..., Log.VERBOSE)=" +
// Log.isLoggable(CLASSNAME, Log.VERBOSE));
// Log.println(Log.ASSERT, CLASSNAME, "Log.isLoggable(..., Log.DEBUG)=" +
// Log.isLoggable(CLASSNAME, Log.DEBUG));
// Log.println(Log.ASSERT, CLASSNAME, "Log.isLoggable(..., Log.INFO)=" +
// Log.isLoggable(CLASSNAME, Log.INFO));
// Log.println(Log.ASSERT, CLASSNAME, "Log.isLoggable(..., Log.WARN)=" +
// Log.isLoggable(CLASSNAME, Log.WARN));
// Log.println(Log.ASSERT, CLASSNAME, "Log.isLoggable(..., Log.ERROR)=" +
// Log.isLoggable(CLASSNAME, Log.ERROR));
// }
/** Send an {@link Log#VERBOSE} log message.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void v(String tag, String msg) {
// Removed from release when BuildConfig.DEBUG is false.
if (BuildConfig.DEBUG && Log.isLoggable(tag, Log.VERBOSE)) {
Log.v(tag, msg);
}
}
/** Send an {@link Log#VERBOSE} log message and log the exception.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void v(String tag, String msg, Throwable tr) {
// Removed from release when BuildConfig.DEBUG is false.
if (BuildConfig.DEBUG && Log.isLoggable(tag, Log.VERBOSE)) {
Log.v(tag, msg, tr);
}
}
/** Send an {@link Log#DEBUG} log message.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void d(String tag, String msg) {
// Removed from release when BuildConfig.DEBUG is false.
if (BuildConfig.DEBUG && Log.isLoggable(tag, Log.DEBUG)) {
Log.d(tag, msg);
}
}
/** Send an {@link Log#DEBUG} log message and log the exception.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void d(String tag, String msg, Throwable tr) {
// Removed from release when BuildConfig.DEBUG is false.
if (BuildConfig.DEBUG && Log.isLoggable(tag, Log.DEBUG)) {
Log.d(tag, msg, tr);
}
}
/** Send an {@link Log#INFO} log message.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void i(String tag, String msg) {
if (Log.isLoggable(tag, Log.INFO)) {
Log.i(tag, msg);
}
}
/** Send an {@link Log#INFO} log message and log the exception.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void i(String tag, String msg, Throwable tr) {
if (Log.isLoggable(tag, Log.INFO)) {
Log.i(tag, msg, tr);
}
}
/** Send an {@link Log#WARN} log message.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void w(String tag, String msg) {
if (Log.isLoggable(tag, Log.WARN)) {
Log.w(tag, msg);
}
}
/** Send an {@link Log#WARN} log message and log the exception.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void w(String tag, String msg, Throwable tr) {
if (Log.isLoggable(tag, Log.WARN)) {
Log.w(tag, msg, tr);
}
}
/** Send an {@link Log#ERROR} log message.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void e(String tag, String msg) {
if (Log.isLoggable(tag, Log.ERROR)) {
Log.e(tag, msg);
}
}
/** Send an {@link Log#ERROR} log message and log the exception.
* @param tag Used to identify the source of a log message. It usually
* identifies
* the class or activity where the log call occurs.
* @param msg The message you would like logged. */
public static void e(String tag, String msg, Throwable tr) {
if (Log.isLoggable(tag, Log.ERROR)) {
Log.e(tag, msg, tr);
}
}
}