@@ -30,6 +30,7 @@ private LogUtils() {
30
30
private static char logFilter = 'v' ;
31
31
private static String tag = "TAG" ;
32
32
private static String dir = null ;
33
+ private static int stackIndex = 0 ;
33
34
34
35
/**
35
36
* 初始化函数
@@ -264,13 +265,13 @@ private static void log(String tag, String msg, Throwable tr, char type) {
264
265
if (msg == null || msg .isEmpty ()) return ;
265
266
if (logSwitch ) {
266
267
if ('e' == type && ('e' == logFilter || 'v' == logFilter )) {
267
- printLog (tag , msg , tr , 'e' );
268
+ printLog (generateTag ( tag ) , msg , tr , 'e' );
268
269
} else if ('w' == type && ('w' == logFilter || 'v' == logFilter )) {
269
- printLog (tag , msg , tr , 'w' );
270
+ printLog (generateTag ( tag ) , msg , tr , 'w' );
270
271
} else if ('d' == type && ('d' == logFilter || 'v' == logFilter )) {
271
- printLog (tag , msg , tr , 'd' );
272
+ printLog (generateTag ( tag ) , msg , tr , 'd' );
272
273
} else if ('i' == type && ('d' == logFilter || 'v' == logFilter )) {
273
- printLog (tag , msg , tr , 'i' );
274
+ printLog (generateTag ( tag ) , msg , tr , 'i' );
274
275
}
275
276
if (log2FileSwitch ) {
276
277
log2File (type , generateTag (tag ), msg + '\n' + Log .getStackTraceString (tr ));
@@ -292,16 +293,16 @@ private static void printLog(final String tag, final String msg, Throwable tr, c
292
293
String subMsg = msg .substring (i * maxLen , (i + 1 ) * maxLen < len ? (i + 1 ) * maxLen : len );
293
294
switch (type ) {
294
295
case 'e' :
295
- Log .e (generateTag ( tag ) , subMsg , tr );
296
+ Log .e (tag , subMsg , tr );
296
297
break ;
297
298
case 'w' :
298
- Log .w (generateTag ( tag ) , subMsg , tr );
299
+ Log .w (tag , subMsg , tr );
299
300
break ;
300
301
case 'd' :
301
- Log .d (generateTag ( tag ) , subMsg , tr );
302
+ Log .d (tag , subMsg , tr );
302
303
break ;
303
304
case 'i' :
304
- Log .i (generateTag ( tag ) , subMsg , tr );
305
+ Log .i (tag , subMsg , tr );
305
306
break ;
306
307
}
307
308
}
@@ -344,9 +345,15 @@ public void run() {
344
345
*/
345
346
private static String generateTag (String tag ) {
346
347
StackTraceElement [] stacks = Thread .currentThread ().getStackTrace ();
347
- StackTraceElement caller = stacks [4 ];
348
- String format = "Tag[" + tag + "] %s[%s, %d]" ;
348
+ if (stackIndex == 0 ) {
349
+ while (!stacks [stackIndex ].getMethodName ().equals ("generateTag" )) {
350
+ ++stackIndex ;
351
+ }
352
+ stackIndex += 3 ;
353
+ }
354
+ StackTraceElement caller = stacks [stackIndex ];
349
355
String callerClazzName = caller .getClassName ();
356
+ String format = "Tag[" + tag + "] %s[%s, %d]" ;
350
357
callerClazzName = callerClazzName .substring (callerClazzName .lastIndexOf ("." ) + 1 );
351
358
return String .format (format , callerClazzName , caller .getMethodName (), caller .getLineNumber ());
352
359
}
0 commit comments