package com.thefinestartist.utils.log; import android.support.annotation.StringRes; import android.util.Log; import com.thefinestartist.enums.LogLevel; import org.json.JSONArray; import org.json.JSONObject; /** * LogUtil helps to manage application-wide {@link Log} conveniently. * * @author Leonardo Taehwan Kim */ public class LogUtil { // Defaults private static Settings defaultSettings = new Settings(LogUtil.class.getSimpleName()); // Singleton private static volatile LogHelper logHelper = new LogHelper() .tag(defaultSettings.getTag()) .showThreadInfo(defaultSettings.getShowThreadInfo()) .stackTraceCount(defaultSettings.getStackTraceCount()) .logLevel(defaultSettings.getLogLevel()) .showDivider(defaultSettings.getShowDivider()); public static Settings getDefaultSettings() { return defaultSettings; } public static LogHelper getInstance() { return logHelper; } // Builder public static LogHelper tag(String tag) { return logHelper.tag(tag); } public static LogHelper tag(@StringRes int tagRes) { return logHelper.tag(tagRes); } public static LogHelper tag(Class clazz) { return logHelper.tag(clazz); } public static LogHelper showThreadInfo(boolean showThreadInfo) { return logHelper.showThreadInfo(showThreadInfo); } public static LogHelper stackTraceCount(int stackTraceCount) { return logHelper.stackTraceCount(stackTraceCount); } public static LogHelper logLevel(LogLevel logLevel) { return logHelper.logLevel(logLevel); } public static LogHelper showDivider(boolean showDivider) { return logHelper.showDivider(showDivider); } public LogHelper logPrinter(LogPrinter logPrinter) { return logHelper.logPrinter(logPrinter); } // Logging Verbose public static void v(byte message) { logHelper.v(message); } public static void v(char message) { logHelper.v(message); } public static void v(short message) { logHelper.v(message); } public static void v(int message) { logHelper.v(message); } public static void v(long message) { logHelper.v(message); } public static void v(float message) { logHelper.v(message); } public static void v(double message) { logHelper.v(message); } public static void v(boolean message) { logHelper.v(message); } public static void v(String message) { logHelper.v(message); } public static void v(JSONObject message) { logHelper.v(message); } public static void v(JSONArray message) { logHelper.v(message); } public static void v(Exception message) { logHelper.v(message); } public static void v(Object message) { logHelper.v(message); } // Logging Debug public static void d(byte message) { logHelper.d(message); } public static void d(char message) { logHelper.d(message); } public static void d(short message) { logHelper.d(message); } public static void d(int message) { logHelper.d(message); } public static void d(long message) { logHelper.d(message); } public static void d(float message) { logHelper.d(message); } public static void d(double message) { logHelper.d(message); } public static void d(boolean message) { logHelper.d(message); } public static void d(String message) { logHelper.d(message); } public static void d(JSONObject message) { logHelper.d(message); } public static void d(JSONArray message) { logHelper.d(message); } public static void d(Exception message) { logHelper.d(message); } public static void d(Object message) { logHelper.d(message); } // Logging Information public static void i(byte message) { logHelper.i(message); } public static void i(char message) { logHelper.i(message); } public static void i(short message) { logHelper.i(message); } public static void i(int message) { logHelper.i(message); } public static void i(long message) { logHelper.i(message); } public static void i(float message) { logHelper.i(message); } public static void i(double message) { logHelper.i(message); } public static void i(boolean message) { logHelper.i(message); } public static void i(String message) { logHelper.i(message); } public static void i(JSONObject message) { logHelper.i(message); } public static void i(JSONArray message) { logHelper.i(message); } public static void i(Exception message) { logHelper.i(message); } public static void i(Object message) { logHelper.i(message); } // Logging Warning public static void w(byte message) { logHelper.w(message); } public static void w(char message) { logHelper.w(message); } public static void w(short message) { logHelper.w(message); } public static void w(int message) { logHelper.w(message); } public static void w(long message) { logHelper.w(message); } public static void w(float message) { logHelper.w(message); } public static void w(double message) { logHelper.w(message); } public static void w(boolean message) { logHelper.w(message); } public static void w(String message) { logHelper.w(message); } public static void w(JSONObject message) { logHelper.w(message); } public static void w(JSONArray message) { logHelper.w(message); } public static void w(Exception message) { logHelper.w(message); } public static void w(Object message) { logHelper.w(message); } // Logging Error public static void e(byte message) { logHelper.e(message); } public static void e(char message) { logHelper.e(message); } public static void e(short message) { logHelper.e(message); } public static void e(int message) { logHelper.e(message); } public static void e(long message) { logHelper.e(message); } public static void e(float message) { logHelper.e(message); } public static void e(double message) { logHelper.e(message); } public static void e(boolean message) { logHelper.e(message); } public static void e(String message) { logHelper.e(message); } public static void e(JSONObject message) { logHelper.e(message); } public static void e(JSONArray message) { logHelper.e(message); } public static void e(Exception message) { logHelper.e(message); } public static void e(Object message) { logHelper.e(message); } // Logging Assert public static void wtf(byte message) { logHelper.wtf(message); } public static void wtf(char message) { logHelper.wtf(message); } public static void wtf(short message) { logHelper.wtf(message); } public static void wtf(int message) { logHelper.wtf(message); } public static void wtf(long message) { logHelper.wtf(message); } public static void wtf(float message) { logHelper.wtf(message); } public static void wtf(double message) { logHelper.wtf(message); } public static void wtf(boolean message) { logHelper.wtf(message); } public static void wtf(String message) { logHelper.wtf(message); } public static void wtf(JSONObject message) { logHelper.wtf(message); } public static void wtf(JSONArray message) { logHelper.wtf(message); } public static void wtf(Exception message) { logHelper.wtf(message); } public static void wtf(Object message) { logHelper.wtf(message); } // Logging JsonString public static void json(String jsonString) { json(LogLevel.DEBUG, jsonString); } public static void json(LogLevel logLevel, String jsonString) { logHelper.json(logLevel, jsonString); } // Logging XmlString public static void xml(String xmlString) { xml(LogLevel.DEBUG, xmlString); } public static void xml(LogLevel logLevel, String jsonString) { logHelper.xml(logLevel, jsonString); } }