Skip to content

Instantly share code, notes, and snippets.

@JcMinarro
Forked from scruffyfox/Debug.java
Last active August 29, 2015 14:06
Show Gist options
  • Save JcMinarro/1b57e1030b2a4b61c8ba to your computer and use it in GitHub Desktop.
Save JcMinarro/1b57e1030b2a4b61c8ba to your computer and use it in GitHub Desktop.
package in.lib;
import android.util.Log;
import java.util.Collection;
public class Debug
{
private static long timeseed = 0L;
private final static String LOG_TAG = "DEBUG";
private static boolean DEBUG = true;
/**
* Sets if the app is in debug mode.
*
* @param inDebug
* If set to true then outputs will be made, else they wont
*/
public static void setDebugMode(boolean inDebug)
{
DEBUG = inDebug;
}
public static void seedTimer()
{
timeseed = System.nanoTime();
}
public static long tickTimer()
{
long newSeed = System.nanoTime();
long diff = (newSeed - timeseed);
timeseed = newSeed;
out("Time: " + (diff / 1000000.0d));
return diff;
}
public static String getCallingStack()
{
Throwable fakeException = new Throwable();
StackTraceElement[] stackTrace = fakeException.getStackTrace();
if (stackTrace != null && stackTrace.length >= 2)
{
String retstr = "";
int index = 0;
for (StackTraceElement s : stackTrace)
{
if (s != null)
{
retstr += index + " : " + s.getFileName() + " from " + s.getMethodName() + " on line " + s.getLineNumber() + "\n";
}
index++;
}
return retstr;
}
return null;
}
public static String getCallingMethodInfo()
{
Throwable fakeException = new Throwable();
StackTraceElement[] stackTrace = fakeException.getStackTrace();
if (stackTrace != null && stackTrace.length >= 2)
{
StackTraceElement s = stackTrace[2];
if (s != null)
{
return s.getFileName() + "(" + s.getMethodName() + ":" + s.getLineNumber() + "):";
}
}
return null;
}
private static void longInfo(String str)
{
if (str.length() > 4000)
{
Log.e(LOG_TAG, str.substring(0, 4000));
longInfo(str.substring(4000));
}
else
{
Log.e(LOG_TAG, str);
}
}
public static void out(Collection args)
{
if (!DEBUG)
return;
String output = "";
for (Object o : args)
{
output += String.valueOf(o) + ", ";
}
longInfo(getCallingMethodInfo() + " " + output);
}
public static void out(Object... args)
{
if (!DEBUG)
return;
String output = "";
for (Object o : args)
{
output += String.valueOf(o) + ", ";
}
longInfo(getCallingMethodInfo() + " " + output);
}
public static void out(String str, Object... args)
{
if (!DEBUG)
return;
longInfo(getCallingMethodInfo() + " " + String.format(str, args));
}
public static void out(Object obj)
{
if (!DEBUG)
return;
longInfo(getCallingMethodInfo() + " " + (obj == null ? "[null]" : String.valueOf(obj)));
}
public static void out(Exception obj)
{
if (!DEBUG)
return;
obj.printStackTrace();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment