安卓開發中,經常需要打印日誌,但是系統的日誌,一是 需要頻繁寫 tag,但是tag經常使用同一個,二是,不能輸出行數,三是,可能打印的日誌很長,不能打印完全,所以需要一個簡單的日誌打印類,少寫點代碼。上代碼:
import android.util.Log; /** * Created by more on 2017/12/7/007. */ public class LogUtils { public static void setDebugMode(boolean debugMode) { LogUtils.debugMode = debugMode; } public static boolean isDebugMode() { return debugMode; } static boolean debugMode = true; static String className;//類名 static String methodName;//方法名 static int lineNumber;//行數 private static String createLog(String log) { StringBuffer buffer = new StringBuffer(); buffer.append(methodName); buffer.append("(").append(className).append(":").append(lineNumber).append(")"); return buffer.toString(); } private static void getMethodNames(StackTraceElement[] sElements) { className = sElements[1].getFileName(); methodName = sElements[1].getMethodName(); lineNumber = sElements[1].getLineNumber(); } public static void logMe(String message) { if (debugMode) { Log.e("666", "| |"); logVeryLongLoge("666", "|" + message); getMethodNames(new Throwable().getStackTrace()); Log.e("666", "|" + createLog(message)); Log.e("666", "| |"); Log.e("666", "-----------------------------------------------------------------------"); Log.e("666", "| |"); } } public static void logMe999(String message) { if (debugMode) { Log.e("999", "| |"); Log.e("999", "|" + message); getMethodNames(new Throwable().getStackTrace()); Log.e("999", "|" + createLog(message)); Log.e("999", "| |"); Log.e("999", "-----------------------------------------------------------------------"); Log.e("999", "| |"); } } /** * 截斷輸出日誌 * @param msg */ public static void logVeryLongLoge(String tag, String msg) { if (tag == null || tag.length() == 0 || msg == null || msg.length() == 0) return; int segmentSize = 3 * 1024; long length = msg.length(); if (length <= segmentSize ) {// 長度小於等於限制直接打印 Log.e(tag, msg); }else { while (msg.length() > segmentSize ) {// 循環分段打印日誌 String logContent = msg.substring(0, segmentSize ); msg = msg.replace(logContent, ""); Log.e(tag, logContent); } Log.e(tag, msg);// 打印剩餘日誌 } } }
使用:
LogUtils.logMe("filePath :" + filePath);
參考文檔:
- Android中Logcat日誌打印不全解決辦法 https://www.jianshu.com/p/9fcdda2d6b7d
- 超級Log工具,能顯示你的文件名、方法、行數並且可以點擊到那一行 https://blog.csdn.net/wenzhi20102321/article/details/78138399