package com.beloo.widget.chipslayoutmanager.util.log;
|
|
import com.beloo.widget.chipslayoutmanager.BuildConfig;
|
|
import java.util.HashSet;
|
import java.util.Set;
|
|
/** this class with static methods created only for fast replace of default android log */
|
public class Log {
|
|
private static LogSwitcher logSwitcher = new LogSwitcher();
|
|
@SuppressWarnings("ConstantConditions")
|
private static LogWrapper log = BuildConfig.isLogEnabled ? new AndroidLog() : new SilentLog();
|
|
///////////////////////////////////////////////////////////////////////////
|
// default android log delegates
|
///////////////////////////////////////////////////////////////////////////
|
|
@SuppressWarnings("WeakerAccess")
|
public static int d (String tag, String msg) {
|
return log.d(tag, msg);
|
}
|
|
@SuppressWarnings("WeakerAccess")
|
public static int v (String tag, String msg) {
|
return log.v(tag, msg);
|
}
|
|
@SuppressWarnings("WeakerAccess")
|
public static int w (String tag, String msg) {
|
return log.w(tag, msg);
|
}
|
|
@SuppressWarnings("WeakerAccess")
|
public static int i (String tag, String msg) {
|
return log.i(tag, msg);
|
}
|
|
public static int e (String tag, String msg) {
|
return log.e(tag, msg);
|
}
|
|
///////////////////////////////////////////////////////////////////////////
|
// android log delegates with switcher
|
///////////////////////////////////////////////////////////////////////////
|
|
@SuppressWarnings("WeakerAccess")
|
public static int d (String tag, String msg, int logCode) {
|
return logSwitcher.isEnabled(logCode) ? d(tag, msg) : 0;
|
}
|
|
@SuppressWarnings("WeakerAccess")
|
public static int v (String tag, String msg, int logCode) {
|
return logSwitcher.isEnabled(logCode) ? v(tag, msg) : 0;
|
}
|
|
@SuppressWarnings("WeakerAccess")
|
public static int w (String tag, String msg, int logCode) {
|
return logSwitcher.isEnabled(logCode) ? w(tag, msg) : 0;
|
}
|
|
@SuppressWarnings("WeakerAccess")
|
public static int i (String tag, String msg, int logCode) {
|
return logSwitcher.isEnabled(logCode) ? i(tag, msg) : 0;
|
}
|
|
public static void with(LogSwitcher logSwitcher) {
|
Log.logSwitcher = logSwitcher;
|
}
|
|
public static class LogSwitcher {
|
private Set<Integer> enabledLogs = new HashSet<>();
|
|
boolean isEnabled(int logCode) {
|
return enabledLogs.contains(logCode);
|
}
|
|
public LogSwitcher with(int logCode) {
|
enabledLogs.add(logCode);
|
return this;
|
}
|
|
public LogSwitcher without(int logCode) {
|
enabledLogs.remove(logCode);
|
return this;
|
}
|
}
|
}
|