@@ -30,6 +30,7 @@ private LogUtils() {
3030 private static char logFilter = 'v' ;
3131 private static String tag = "TAG" ;
3232 private static String dir = null ;
33+ private static int stackIndex = 0 ;
3334
3435 /**
3536 * 初始化函数
@@ -264,13 +265,13 @@ private static void log(String tag, String msg, Throwable tr, char type) {
264265 if (msg == null || msg .isEmpty ()) return ;
265266 if (logSwitch ) {
266267 if ('e' == type && ('e' == logFilter || 'v' == logFilter )) {
267- printLog (tag , msg , tr , 'e' );
268+ printLog (generateTag ( tag ) , msg , tr , 'e' );
268269 } else if ('w' == type && ('w' == logFilter || 'v' == logFilter )) {
269- printLog (tag , msg , tr , 'w' );
270+ printLog (generateTag ( tag ) , msg , tr , 'w' );
270271 } else if ('d' == type && ('d' == logFilter || 'v' == logFilter )) {
271- printLog (tag , msg , tr , 'd' );
272+ printLog (generateTag ( tag ) , msg , tr , 'd' );
272273 } else if ('i' == type && ('d' == logFilter || 'v' == logFilter )) {
273- printLog (tag , msg , tr , 'i' );
274+ printLog (generateTag ( tag ) , msg , tr , 'i' );
274275 }
275276 if (log2FileSwitch ) {
276277 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
292293 String subMsg = msg .substring (i * maxLen , (i + 1 ) * maxLen < len ? (i + 1 ) * maxLen : len );
293294 switch (type ) {
294295 case 'e' :
295- Log .e (generateTag ( tag ) , subMsg , tr );
296+ Log .e (tag , subMsg , tr );
296297 break ;
297298 case 'w' :
298- Log .w (generateTag ( tag ) , subMsg , tr );
299+ Log .w (tag , subMsg , tr );
299300 break ;
300301 case 'd' :
301- Log .d (generateTag ( tag ) , subMsg , tr );
302+ Log .d (tag , subMsg , tr );
302303 break ;
303304 case 'i' :
304- Log .i (generateTag ( tag ) , subMsg , tr );
305+ Log .i (tag , subMsg , tr );
305306 break ;
306307 }
307308 }
@@ -344,9 +345,15 @@ public void run() {
344345 */
345346 private static String generateTag (String tag ) {
346347 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 ];
349355 String callerClazzName = caller .getClassName ();
356+ String format = "Tag[" + tag + "] %s[%s, %d]" ;
350357 callerClazzName = callerClazzName .substring (callerClazzName .lastIndexOf ("." ) + 1 );
351358 return String .format (format , callerClazzName , caller .getMethodName (), caller .getLineNumber ());
352359 }
0 commit comments