package quickutils.core.categories;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import quickutils.core.QuickUtils;
public class log {
/**
* private constructor
*/
// private log() {
// }
/**
* Sends an ERROR log message
*
* @param message The message you would like logged.
*/
public static int e(String message) {
return logger(QuickUtils.ERROR, message);
}
/**
* Sends an ERROR log message
*
* @param message The message you would like logged.
* @param throwable An exception to log
*/
public static int e(String message, Throwable throwable) {
return logger(QuickUtils.ERROR, message, throwable);
}
/**
* Sends an INFO log message.
*
* @param message The message you would like logged.
*/
public static int i(String message) {
return logger(QuickUtils.INFO, message);
}
/**
* Sends an INFO log message.
*
* @param message The message you would like logged.
* @param throwable An exception to log
*/
public static int i(String message, Throwable throwable) {
return logger(QuickUtils.INFO, message, throwable);
}
/**
* Sends a VERBBOSE log message.
*
* @param message The message you would like logged.
*/
public static int v(String message) {
return logger(QuickUtils.VERBOSE, message);
}
/**
* Sends a VERBBOSE log message.
*
* @param message The message you would like logged.
* @param throwable An exception to log
*/
public static int v(String message, Throwable throwable) {
return logger(QuickUtils.VERBOSE, message, throwable);
}
/**
* Sends a WARNING log message.
*
* @param message The message you would like logged.
*/
public static int w(String message) {
return logger(QuickUtils.WARN, message);
}
/**
* Sends a WARNING log message.
*
* @param message The message you would like logged.
* @param throwable An exception to log
*/
public static int w(String message, Throwable throwable) {
return logger(QuickUtils.WARN, message, throwable);
}
/**
* Sends a DEBUG log message.
*
* @param message The message you would like logged.
*/
public static int d(String message) {
return logger(QuickUtils.DEBUG, message);
}
/**
* Sends a DEBUG log message and log the exception.
*
* @param message The message you would like logged.
* @param throwable An exception to log
*/
public static int d(String message, Throwable throwable) {
return logger(QuickUtils.DEBUG, message, throwable);
}
/**
* Private Logger function to handle Log calls
*
* @param level level of the log message
* @param message log output
* @param throwable
*/
private static int logger(int level, String message, Throwable throwable) {
if (QuickUtils.shouldShowLogs()) {
switch (level) {
case QuickUtils.DEBUG:
return android.util.Log.d(QuickUtils.TAG, message, throwable);
case QuickUtils.VERBOSE:
return android.util.Log.v(QuickUtils.TAG, message, throwable);
case QuickUtils.INFO:
return android.util.Log.i(QuickUtils.TAG, message, throwable);
case QuickUtils.WARN:
return android.util.Log.w(QuickUtils.TAG, message, throwable);
case QuickUtils.ERROR:
return android.util.Log.e(QuickUtils.TAG, message, throwable);
default:
break;
}
}
return -1;
}
/**
* Private Logger function to handle Log calls
*
* @param level level of the log message
* @param message log output
*/
private static int logger(int level, String message) {
if (QuickUtils.shouldShowLogs()) {
switch (level) {
case QuickUtils.DEBUG:
return android.util.Log.d(QuickUtils.TAG, message);
case QuickUtils.VERBOSE:
return android.util.Log.v(QuickUtils.TAG, message);
case QuickUtils.INFO:
return android.util.Log.i(QuickUtils.TAG, message);
case QuickUtils.WARN:
return android.util.Log.w(QuickUtils.TAG, message);
case QuickUtils.ERROR:
return android.util.Log.e(QuickUtils.TAG, message);
default:
break;
}
}
return -1;
}
public static void staticFields(Class<?> clazz) throws IllegalAccessException {
for (Field f : clazz.getDeclaredFields()) {
if (Modifier.isStatic(f.getModifiers())) {
boolean wasAccessible = f.isAccessible();
f.setAccessible(true);
QuickUtils.log.i(f.getName() + ": " + f.get(null));
f.setAccessible(wasAccessible);
}
}
}
public static void privateFields(Class<?> clazz) throws IllegalAccessException {
for (Field f : clazz.getDeclaredFields()) {
if (Modifier.isPrivate(f.getModifiers())) {
boolean wasAccessible = f.isAccessible();
f.setAccessible(true);
QuickUtils.log.i(f.getName() + ": " + f.get(null));
f.setAccessible(wasAccessible);
}
}
}
}