Browse Source

1.添加日志工具类

master
wangwanlei 10 months ago
parent
commit
eb14e33ae1
1 changed files with 135 additions and 0 deletions
  1. 135
    0
      corelib/src/main/java/com/xhly/corelib/utils/LogUtils.java

+ 135
- 0
corelib/src/main/java/com/xhly/corelib/utils/LogUtils.java View File

1
+package com.xhly.corelib.utils;
2
+
3
+import android.util.Log;
4
+
5
+public class LogUtils {
6
+    public static String TAG = "LogUtils";
7
+    private static final boolean DEBUG = true;
8
+
9
+    private static final int D = 745;
10
+    private static final int E = 421;
11
+    private static final int V = 674;
12
+    private static final String CUT_OFF = "------------------------";
13
+    private static final String CUT_OFF_END = "----------------------" +
14
+            "--------------------------------------------------------";
15
+    private static final String SPACE_9 = "         ";
16
+
17
+
18
+    public static void d(String tag, String... values) {
19
+        printf(D, tag, values);
20
+    }
21
+
22
+    public static void e(String tag, String... values) {
23
+        printf(E, tag, values);
24
+    }
25
+
26
+    public static void v(String tag, String... values) {
27
+        printf(V, tag, values);
28
+    }
29
+
30
+    private static void printf(int mark, String tag, String... values) {
31
+        if (!DEBUG) {
32
+            return;
33
+        }
34
+
35
+        //需要打印的内容
36
+        StringBuffer value = new StringBuffer();
37
+        for (int i = 0; i < values.length; i++) {
38
+            value.append(values[i]);
39
+            if (i == values.length - 1) {
40
+                break;
41
+            }
42
+            value.append(", ");
43
+        }
44
+
45
+        // 打印
46
+        switch (mark) {
47
+            case D:
48
+
49
+                printfLine(D, tag);
50
+                Log.d(tag, SPACE_9 + value.toString());
51
+                Log.d(tag, CUT_OFF_END);
52
+
53
+                break;
54
+            case E:
55
+                printfLine(E, tag);
56
+
57
+                Log.e(tag, SPACE_9 + value.toString());
58
+                Log.e(tag, CUT_OFF_END);
59
+
60
+                break;
61
+            case V:
62
+                printfLine(V, tag);
63
+
64
+                Log.v(tag, SPACE_9 + value.toString());
65
+                Log.v(tag, CUT_OFF_END);
66
+
67
+                break;
68
+        }
69
+
70
+
71
+    }
72
+
73
+    private static String getPosition(String tag) {
74
+        StringBuilder sb = new StringBuilder();
75
+        StackTraceElement element = getTargetStack(tag);
76
+
77
+        if (null == element) {
78
+            return null;
79
+        }
80
+
81
+        //sb.append(".")// 我电脑的AndroidStudio有点问题,必须在这加个点,在logcat中才能定位。Androidstudio升级后,这个问题不存在了。
82
+        sb.append("(")
83
+                .append(element.getFileName())
84
+                .append(":")
85
+                .append(element.getLineNumber())
86
+                .append(")");
87
+        return sb.toString();
88
+    }
89
+
90
+    private static void printfLine(int mark, String tag) {
91
+        String startLine = CUT_OFF + getPosition(tag) + CUT_OFF;
92
+
93
+        switch (mark) {
94
+            case D:
95
+
96
+                Log.d(tag, " ");
97
+                Log.d(tag, startLine);
98
+
99
+                break;
100
+            case E:
101
+                Log.e(tag, " ");
102
+                Log.e(tag, startLine);
103
+                break;
104
+            case V:
105
+                Log.v(tag, " ");
106
+                Log.v(tag, startLine);
107
+                break;
108
+        }
109
+
110
+
111
+    }
112
+
113
+    /**
114
+     * 获取最后调用我们log的StackTraceElement
115
+     *
116
+     * @param tag 目标类的SimpleName
117
+     * @return
118
+     */
119
+
120
+    private static StackTraceElement getTargetStack(String tag) {
121
+
122
+        for (StackTraceElement element : Thread.currentThread().getStackTrace()) {
123
+
124
+            if (element.getClassName().contains(tag)) {
125
+                //返回调用位置的 element
126
+                return element;
127
+
128
+            }
129
+
130
+        }
131
+
132
+        return null;
133
+    }
134
+
135
+}

Loading…
Cancel
Save