Last active
December 22, 2015 03:29
-
-
Save kimukou/6410244 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//ref https://gist.github.com/3595115 | |
// | |
// privious https://gist.github.com/kimukou/3598821 | |
import com.nihon0tc.ad.BuildConfig; | |
import org.slf4j.Logger; | |
import org.slf4j.LoggerFactory; | |
import org.slf4j.helpers.MessageFormatter; | |
public class LogUtil { | |
public static void debug(String tag,Object msg) | |
{ | |
if(!isDebugEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.debug(String.valueOf(msg)); | |
} | |
public static void debug(String tag,String format,Object... arguments) | |
{ | |
if(!isDebugEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.debug(format,arguments); | |
} | |
public static void info(String tag,Object msg) | |
{ | |
if(!isInfoEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.info(String.valueOf(msg)); | |
} | |
public static void info(String tag,String format,Object... arguments) | |
{ | |
if(!isInfoEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.info(format,arguments); | |
} | |
public static void warn(String tag,Object msg) | |
{ | |
if(!isWarnEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.warn(String.valueOf(msg)); | |
} | |
public static void warn(String tag,String format,Object... arguments) | |
{ | |
if(!isWarnEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.warn(format,arguments); | |
} | |
public static void error(String tag,Object msg) | |
{ | |
if(!isErrorEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.error(String.valueOf(msg)); | |
} | |
public static void error(String tag,String format,Object... arguments) | |
{ | |
if(!isErrorEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.error(format,arguments); | |
} | |
public static void error(String tag,Object msg,Exception ex) | |
{ | |
if(!isErrorEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.error(String.valueOf(msg),ex); | |
} | |
public static void error(String tag,Exception ex,String format,Object... arguments) | |
{ | |
if(!isErrorEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.error(format_slf4j(format,arguments),ex); | |
} | |
public static void error(String tag,Object msg,Throwable ex) | |
{ | |
if(!isErrorEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.error(String.valueOf(msg),ex); | |
} | |
public static void error(String tag,Throwable ex,String format,Object... arguments) | |
{ | |
if(!isErrorEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.error(format_slf4j(format,arguments),ex); | |
} | |
public static void trace(String tag,Object msg) | |
{ | |
if(!isTraceEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.trace(String.valueOf(msg)); | |
} | |
public static void trace(String tag,String format,Object... arguments) | |
{ | |
if(!isTraceEnabled(tag))return; | |
Logger logger = LoggerFactory.getLogger(tag); | |
logger.trace(format,arguments); | |
} | |
//see http://d.hatena.ne.jp/Kazzz/20100921/p2 | |
// apk実行時はINFOで必ず起動するので | |
// BuildConfig.DEBUG時は常にtrueにした方がデバックしやすい | |
public static boolean isDebugEnabled(String tag) | |
{ | |
if(BuildConfig.DEBUG)return true; | |
Logger logger = LoggerFactory.getLogger(tag); | |
return logger==null ? false:logger.isDebugEnabled(); | |
} | |
public static boolean isInfoEnabled(String tag) | |
{ | |
if(BuildConfig.DEBUG)return true; | |
Logger logger = LoggerFactory.getLogger(tag); | |
return logger==null ? false:logger.isInfoEnabled(); | |
} | |
public static boolean isWarnEnabled(String tag) | |
{ | |
if(BuildConfig.DEBUG)return true; | |
Logger logger = LoggerFactory.getLogger(tag); | |
return logger==null ? false:logger.isWarnEnabled(); | |
} | |
public static boolean isErrorEnabled(String tag) | |
{ | |
if(BuildConfig.DEBUG)return true; | |
Logger logger = LoggerFactory.getLogger(tag); | |
return logger==null ? false:logger.isErrorEnabled(); | |
} | |
public static boolean isTraceEnabled(String tag) | |
{ | |
if(BuildConfig.DEBUG)return true; | |
Logger logger = LoggerFactory.getLogger(tag); | |
return logger==null ? false:logger.isDebugEnabled(); | |
} | |
//see https://gist.github.com/3637574#file_debug_log.java | |
public static void debug(Object msg) | |
{ | |
String tag = getClassName(); | |
Logger logger = LoggerFactory.getLogger(tag); | |
if(!logger.isDebugEnabled())return; | |
logger.debug("{}{}{}",new Object[]{msg,getPadding(msg),getAdditionalLog()}); | |
} | |
public static void info(Object msg) | |
{ | |
String tag = getClassName(); | |
Logger logger = LoggerFactory.getLogger(tag); | |
if(!logger.isInfoEnabled())return; | |
logger.info("{}{}{}",new Object[]{msg,getPadding(msg),getAdditionalLog()}); | |
} | |
public static void warn(Object msg) | |
{ | |
String tag = getClassName(); | |
Logger logger = LoggerFactory.getLogger(tag); | |
if(!logger.isWarnEnabled())return; | |
logger.warn("{}{}{}",new Object[]{msg,getPadding(msg),getAdditionalLog()}); | |
} | |
public static void error(Object msg) | |
{ | |
String tag = getClassName(); | |
Logger logger = LoggerFactory.getLogger(tag); | |
if(!logger.isErrorEnabled())return; | |
logger.error("{}{}{}",new Object[]{msg,getPadding(msg),getAdditionalLog()}); | |
} | |
public static void error(Object msg,Exception ex) | |
{ | |
String tag = getClassName(); | |
Logger logger = LoggerFactory.getLogger(tag); | |
if(!logger.isErrorEnabled())return; | |
logger.error("{}{}{}",new Object[]{msg,getPadding(msg),getAdditionalLog()},ex); | |
} | |
public static void error(Object msg,Throwable ex) | |
{ | |
String tag = getClassName(); | |
Logger logger = LoggerFactory.getLogger(tag); | |
if(!logger.isErrorEnabled())return; | |
logger.error("{}{}{}",new Object[]{msg,getPadding(msg),getAdditionalLog()},ex); | |
} | |
public static void trace(Object msg) | |
{ | |
String tag = getClassName(); | |
Logger logger = LoggerFactory.getLogger(tag); | |
if(!logger.isTraceEnabled())return; | |
logger.trace("{}{}{}",new Object[]{msg,getPadding(msg),getAdditionalLog()}); | |
} | |
private static String getClassName() { | |
String fn = ""; | |
try { | |
StackTraceElement elm = new Throwable().getStackTrace()[INDEX]; | |
fn = getClassName(elm); | |
} catch (Exception e) {} | |
return fn; | |
} | |
private static final int MAX_TAB_COUNT = 8; | |
private static final int TAB_SIZE = 4; | |
private static final int INDEX = 3; | |
private static String getPadding(Object message) { | |
String padding = ""; | |
int tabCount = MAX_TAB_COUNT - (String.valueOf(message).length() / TAB_SIZE); | |
if (tabCount <= 0) { | |
return "\t"; | |
} | |
for (int i = 0; i < tabCount; i++) { | |
padding += "\t"; | |
} | |
return padding; | |
} | |
private static String getAdditionalLog() { | |
StackTraceElement elm = null; | |
try { | |
elm = new Throwable().getStackTrace()[INDEX]; | |
} | |
catch(Exception ex){ return ""; } | |
String additionalLog = new StringBuilder(" at ").append(getClassName(elm)).append("#").append(getMethodName(elm)) | |
.append("(").append(getFileName(elm)).append(":").append(getLineNumber(elm)).append(")").toString(); | |
return additionalLog; | |
} | |
private static String getClassName(StackTraceElement elm) { | |
String className = elm.getClassName(); | |
className = className.substring(className.lastIndexOf(".") + 1); | |
return className; | |
} | |
private static String getMethodName(StackTraceElement elm) { | |
return elm.getMethodName(); | |
} | |
private static String getFileName(StackTraceElement elm) { | |
return elm.getFileName(); | |
} | |
private static String getLineNumber(StackTraceElement elm) { | |
return String.valueOf(elm.getLineNumber()); | |
} | |
//copy from org.slf4j.impl.AndroidLogger | |
// private String format(final String format, final Object[] args) | |
// | |
private static String format_slf4j(final String format, final Object[] args) | |
{ | |
return MessageFormatter.arrayFormat(format, args).getMessage(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment