package com.pandocloud.freeiot.utils;
import java.io.PrintWriter;
import java.io.StringWriter;
public class LogUtils {
public static final int VERBOSE = 0x0001;
public static final int DEBUG = 0x0002;
public static final int INFO = 0x0004;
public static final int WARN = 0x0008;
public static final int ERROR = 0x0010;
public static final int LEVEL_RELEASE = 0x0000;
public static final int LEVEL_TEST = VERBOSE | DEBUG | INFO | WARN | ERROR;
private static int LEVEL = LEVEL_TEST;//上线时改成LEVEL_RELEASE
private static final String TAG = "PANDO_LOG";
public static final void setLevel(int level) {
LEVEL = level;
}
private static boolean check(int level) {
if ((LEVEL & level) > 0) {
return true;
}
return false;
}
public static void v(String text) {
if (check(VERBOSE)) android.util.Log.v(TAG, text);
}
public static void v(String tag, String text) {
if (check(VERBOSE)) android.util.Log.v(tag, text);
}
public static void d(String text) {
if (check(DEBUG)) android.util.Log.d(TAG, text);
}
public static void d(String text, Throwable tr) {
if (check(DEBUG)) android.util.Log.d(TAG, text, tr);
}
public static void d(String tag, String text) {
if (check(DEBUG)) android.util.Log.d(tag, text);
}
public static void d(String tag, String text, Throwable tr) {
if (check(DEBUG)) android.util.Log.d(tag, text, tr);
}
public static void i(String text) {
if (check(INFO)) android.util.Log.i(TAG, text);
}
public static void i(String text, Throwable tr) {
if (check(INFO)) android.util.Log.i(TAG, text, tr);
}
public static void i(String tag, String text) {
if (check(INFO)) android.util.Log.i(tag, text);
}
public static void i(String tag, String text, Throwable tr) {
if (check(INFO)) android.util.Log.i(tag, text, tr);
}
public static void w(String text) {
if (check(WARN)) android.util.Log.w(TAG, text);
}
public static void w(String text, Throwable tr) {
if (check(WARN)) android.util.Log.w(TAG, text, tr);
}
public static void w(String tag, String text) {
if (check(WARN)) android.util.Log.w(tag, text);
}
public static void w(String tag, String text, Throwable tr) {
if (check(WARN)) android.util.Log.w(tag, text, tr);
}
public static void e(String text) {
if (check(ERROR)) android.util.Log.e(TAG, text);
}
public static void e(Throwable e) {
e(getStringFromThrowable(e));
}
public static void e(Throwable e, String message) {
e(message +"\n" + getStringFromThrowable(e));
}
public static void e(String text, Throwable tr) {
if (check(ERROR)) android.util.Log.e(TAG, text, tr);
}
public static void e(String tag, String text) {
if (check(ERROR)) android.util.Log.e(tag, text);
}
public static void e(String tag, String text, Throwable tr) {
if (check(ERROR)) android.util.Log.e(tag, text, tr);
}
public static String getStackTraceString(Throwable tr) {
return android.util.Log.getStackTraceString(tr);
}
public static int println(int priority, String tag, String msg) {
return android.util.Log.println(priority, tag, msg);
}
public static String getStringFromThrowable(Throwable e) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
return sw.toString();
}
public static void e(String tag, byte[] data) {
if (data == null) {
return;
}
StringBuffer sBuffer = new StringBuffer();
for (int i = 0; i< data.length; i++) {
sBuffer.append(Integer.toHexString(data[i])).append(" ");
}
LogUtils.e("body length: " + sBuffer.toString());
}
}