Android Log工具类 发表于 2018-05-04 | 分类于 Android 字数统计: 1,094 | 阅读时长 ≈ 7 MainLog.java,使用方法为 private MainLog LOG = new MainLog(clazz)Download Jar 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354import org.slf4j.helpers.MarkerIgnoringBase;public class MainLog extends MarkerIgnoringBase { private final static int LOG_ERROR = 1; private final static int LOG_WARN = 2; private final static int LOG_INFO = 3; private final static int LOG_DEBUG = 4; private final static int LOG_TRACE = 5; /** * 可以在Build.gradle文件中区分debug、release、beta的log level */ private static int LOG_LEVEL = BuildConfig.LOG_LEVEL; private org.slf4j.Logger log = null; private MainLog() { } public MainLog(Class<?> t) { if (t == null) { throw new IllegalArgumentException("owner must not be null"); } this.log = org.slf4j.LoggerFactory.getLogger(t); } @Override public void debug(String format, Object param1, Object param2) { if (!this.isDebugEnabled()) { return; } log.debug(format, param1, param2); } @Override public void debug(String format, Object arg1) { if (!this.isDebugEnabled()) { return; } log.debug(format, arg1); } @Override public void debug(String format, Object[] argArray) { if (!this.isDebugEnabled()) { return; } log.debug(format, argArray); StringBuilder sb = new StringBuilder(); for (Object o : argArray) { sb.append(((o == null) ? null : o.toString())); sb.append("\n"); } } @Override public void debug(String msg, Throwable t) { if (!this.isDebugEnabled()) { return; } log.debug(msg, t); StringBuilder sb = new StringBuilder(); if (t != null) { for (StackTraceElement element : t.getStackTrace()) { sb.append(((element == null) ? null : element.toString())); sb.append("\n"); } } } @Override public void debug(String msg) { if (!this.isDebugEnabled()) { return; } log.debug(msg); } @Override public void error(String format, Object arg1, Object arg2) { if (!this.isErrorEnabled()) { return; } log.error(format, arg1, arg2); } @Override public void error(String format, Object arg) { if (!this.isErrorEnabled()) { return; } log.error(format, arg); } @Override public void error(String format, Object[] argArray) { if (!this.isErrorEnabled()) { return; } log.error(format, argArray); StringBuilder sb = new StringBuilder(); for (Object o : argArray) { sb.append(((o == null) ? null : o.toString())); sb.append("\n"); } } @Override public void error(String msg, Throwable t) { if (!this.isErrorEnabled()) { return; } log.error(msg, t); StringBuilder sb = new StringBuilder(); if (t != null) { for (StackTraceElement element : t.getStackTrace()) { sb.append(((element == null) ? null : element.toString())); sb.append("\n"); } } } @Override public void error(String msg) { if (!this.isErrorEnabled()) { return; } log.error(msg); } @Override public void info(String format, Object arg1, Object arg2) { if (!this.isInfoEnabled()) { return; } log.info(format, arg1, arg2); } @Override public void info(String format, Object arg) { if (!this.isInfoEnabled()) { return; } log.info(format, arg); } @Override public void info(String format, Object[] argArray) { if (!this.isInfoEnabled()) { return; } log.info(format, argArray); StringBuilder sb = new StringBuilder(); for (Object o : argArray) { sb.append(((o == null) ? null : o.toString())); sb.append("\n"); } } @Override public void info(String msg, Throwable t) { if (!this.isInfoEnabled()) { return; } log.info(msg, t); StringBuilder sb = new StringBuilder(); if (t != null) { for (StackTraceElement element : t.getStackTrace()) { sb.append(((element == null) ? null : element.toString())); sb.append("\n"); } } } @Override public void info(String msg) { if (!this.isInfoEnabled()) { return; } log.info(msg); } @Override public void trace(String format, Object param1, Object param2) { if (!this.isTraceEnabled()) { return; } log.trace(format, param1, param2); } @Override public void trace(String format, Object param1) { if (!this.isTraceEnabled()) { return; } log.trace(format, param1); } @Override public void trace(String format, Object[] argArray) { if (!this.isTraceEnabled()) { return; } log.trace(format, argArray); StringBuilder sb = new StringBuilder(); for (Object o : argArray) { sb.append(((o == null) ? null : o.toString())); sb.append("\n"); } } @Override public void trace(String msg, Throwable t) { if (!this.isTraceEnabled()) { return; } log.trace(msg, t); StringBuilder sb = new StringBuilder(); if (t != null) { for (StackTraceElement element : t.getStackTrace()) { sb.append(((element == null) ? null : element.toString())); sb.append("\n"); } } } @Override public void trace(String msg) { if (!this.isTraceEnabled()) { return; } log.trace(msg); } @Override public void warn(String format, Object arg1, Object arg2) { if (!this.isWarnEnabled()) { return; } log.warn(format, arg1, arg2); } @Override public void warn(String format, Object arg) { if (!this.isWarnEnabled()) { return; } log.warn(format, arg); } @Override public void warn(String format, Object[] argArray) { if (!this.isWarnEnabled()) { return; } log.warn(format, argArray); StringBuilder sb = new StringBuilder(); for (Object o : argArray) { sb.append(((o == null) ? null : o.toString())); sb.append("\n"); } } @Override public void warn(String msg, Throwable t) { if (!this.isWarnEnabled()) { return; } log.warn(msg, t); StringBuilder sb = new StringBuilder(); if (t != null) { for (StackTraceElement element : t.getStackTrace()) { sb.append(((element == null) ? null : element.toString())); sb.append("\n"); } } } @Override public void warn(String msg) { if (!this.isWarnEnabled()) { return; } log.warn(msg); } @Override public boolean isDebugEnabled() { return LOG_LEVEL >= LOG_DEBUG; } @Override public boolean isErrorEnabled() { return LOG_LEVEL >= LOG_ERROR; } @Override public boolean isInfoEnabled() { return LOG_LEVEL >= LOG_INFO; } @Override public boolean isTraceEnabled() { return LOG_LEVEL >= LOG_TRACE; } @Override public boolean isWarnEnabled() { return LOG_LEVEL >= LOG_WARN; }}