Android-java Log封装,目前感觉最适合自己的LogUtils
Posted peak wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-java Log封装,目前感觉最适合自己的LogUtils相关的知识,希望对你有一定的参考价值。
封装的这个Log可以直接在日志中显示调用侧的类名,方法名,行号,方便定位问题。
这是好久前写的了,StackTrace数组中各元素的的含义忘了,也没必要翻书或重跑程序的必要,只记得返回下标为2的元素时指向的是调用侧,下标为1时指向的是Logg.
StackTraceElement ste = new Throwable().getStackTrace()[2];
日志如下:
代码:
package com.android.music.utils;
import android.util.Log;
public class Logg {
public static String tagPrefix = "StmMusicPlayer";
public static boolean isDebug = SystemProperties.getBoolean("persist.sys.apk.debug",true); /**persist.sys.apk.debug**/
private static String tag() {
StackTraceElement ste = new Throwable().getStackTrace()[2];
String clsName = ste.getClassName();
clsName = clsName.substring(clsName.lastIndexOf(".") + 1 ,clsName.length());
String tag = String.format("%s|cls:%s|method:%s|line:%s|",tagPrefix,clsName,ste.getMethodName(),ste.getLineNumber());
return tag;
}
public static void v(String msg) {
if (isDebug) {
Log.v(tag(), msg);
}
}
public static void v(String msg, Throwable tr) {
if (isDebug) {
Log.v(tag(), msg, tr);
}
}
public static void d(String msg) {
if (isDebug) {
Log.d(tag(), msg);
}
}
public static void d(String msg, Throwable tr) {
if (isDebug) {
Log.d(tag(), msg, tr);
}
}
public static void i(String msg) {
if (isDebug) {
Log.i(tag(), msg);
}
}
public static void i(String msg, Throwable tr) {
if (isDebug) {
Log.i(tag(), msg, tr);
}
}
public static void w(String msg) {
if (isDebug) {
Log.w(tag(), msg);
}
}
public static void w(String msg, Throwable tr) {
if (isDebug) {
Log.w(tag(), msg, tr);
}
}
public static void e(String msg) {
if (isDebug) {
Log.e(tag(), msg);
}
}
public static void e(String msg, Throwable tr) {
if (isDebug) {
Log.e(tag(), msg, tr);
}
}
public static void showLog(String tag, String msg) {
if (isDebug) {
Log.i(tag, msg);
}
}
}
以上是关于Android-java Log封装,目前感觉最适合自己的LogUtils的主要内容,如果未能解决你的问题,请参考以下文章