LogUtil.java 2.3 KB
package com.ectrip.cyt.utils;

import android.text.TextUtils;
import android.util.Log;

import com.ectrip.cyt.exceptionsave.debug.ConfigureLog4J;

import org.apache.log4j.Logger;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

/**
 * Log统一管理类
 */
public class LogUtil
{
	public static boolean isDebug = true;// 是否需要打印bug,可以在application的onCreate函数里面初始化
	private static final String TAG = "MyAndroid";
	private static boolean isConfigured = false;
	// 下面四个是默认tag的函数
	public static void d(String tag, String message) {
		if (isDebug) {
			Logger LOGGER = getLogger(tag);
			LOGGER.debug(message);
		}
	}

	public static void d(String tag, String message, Throwable exception) {
		if (isDebug) {
			Logger LOGGER = getLogger(tag);
			LOGGER.debug(message, exception);
		}
	}

	public static void i(String tag, String message) {
		if (isDebug) {
			Logger LOGGER = getLogger(tag);
			LOGGER.info(message);
		}
	}

	public static void i(String tag, String message, Throwable exception) {
		if (isDebug) {
			Logger LOGGER = getLogger(tag);
			LOGGER.info(message, exception);
		}
	}

	public static void w(String tag, String message) {
		if (isDebug) {
			Logger LOGGER = getLogger(tag);
			LOGGER.warn(message);
		}
	}

	public static void w(String tag, String message, Throwable exception) {
		if (isDebug) {
			Logger LOGGER = getLogger(tag);
			LOGGER.warn(message, exception);
		}
	}

	public static void e(String tag, String message) {
		if (isDebug) {
			Logger LOGGER = getLogger(tag);
			LOGGER.error(message);
		}
	}

	public static void e(String tag, String message, Throwable exception) {
		if (isDebug) {
			Logger LOGGER = getLogger(tag);
			LOGGER.error(message, exception);
		}
	}

	private static Logger getLogger(String tag) {
		if (!isConfigured) {
			ConfigureLog4J configureLog4J = new ConfigureLog4J();
			configureLog4J.configure();
			isConfigured = true;
		}
		Logger logger;
		if (TextUtils.isEmpty(tag)) {
			logger = Logger.getRootLogger();
		} else {
			logger = Logger.getLogger(tag);
		}
		return logger;
	}

	public static String getExMsg(Exception e) {
		e.printStackTrace();
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		e.printStackTrace(new PrintStream(baos));
		String exception = baos.toString();
		return exception;

	}
}