简体   繁体   English

为什么Android Studio的logcat没有完全输出日志?

[英]Why does Android Studio's logcat not fully output logs?

I use a loop to output the log, but not all of it is completely printed in logcat, and some missing log information is not displayed.我用了一个循环来输出日志,但是logcat中并没有全部打印出来,还有一些缺失的日志信息没有显示出来。 How can I output all the information completely?如何完整输出所有信息?

for (int i=0;i<(mSpaceCount + mPulseCount);i++)
{
    Log.i("flag", "~~~~m_bitDateF[i] : "+m_bitDateF[i]+" i :"+i);
}

Output is as follows:输出如下:

............

12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :434
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :435
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :436
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :437
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :438
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :439
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :440
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :441
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :442
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :443
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :444
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :445
12-28 18:43:24.215 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :446
12-28 18:43:24.216 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :447
12-28 18:43:24.216 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :448
12-28 18:43:24.216 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :449
12-28 18:43:24.219 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :601
12-28 18:43:24.219 20116 20503 I flag    : ~~~~m_bitDateF[i] : 3.5 i :604
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :749
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :756
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :757
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :758
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :759
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :760
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :761
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :762
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :763
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :764
12-28 18:43:24.222 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :765
12-28 18:43:24.224 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :837
12-28 18:43:24.224 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :838
12-28 18:43:24.224 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :839
12-28 18:43:24.224 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :840
12-28 18:43:24.224 20116 20503 I flag    : ~~~~m_bitDateF[i] : -3.5 i :841

............

You can see that the output was skipped after 449 to 601 and 604 to 749, but the loop should be executed, but there is no output.可以看到449到601和604到749之后跳过了输出,但是应该执行了循环,但是没有输出。 I don't know why there is not all output, and the problem is random and sometimes it will output normally.不知道为什么没有全部输出,而且问题是随机的,有时会正常输出。 How can I make logcat complete output log?如何使 logcat 完整输出日志?

While looking at your Logcat, you should look at the timestamp on the left-hand side.在查看 Logcat 时,您应该查看左侧的时间戳。 18:43:24.215 for example.例如18:43:24.215 the .215 is the milliseconds. .215是毫秒。 And if you look at the output ending in the same millisecond, you can see that you're outputting about 20 lines of output per millisecond.如果您查看以同一毫秒结尾的输出,您会发现每毫秒大约输出 20 行输出。

Now, looking at your output where you're skipping numbers, look at the milliseconds.现在,看看你跳过数字的输出,看看毫秒。

18:43:24.215 : i :446
18:43:24.216 : i :447
18:43:24.216 : i :448
18:43:24.216 : i :449
// it's skipping here //
18:43:24.219 : i :601
18:43:24.219 : i :604

It skipped about 3 milliseconds.它跳过了大约 3 毫秒。

So, what's happening is you are logging out everything, it's just overloading LogCat with too much to print out.所以,发生的事情是您正在注销所有内容,这只是使 LogCat 过载而无法打印出太多内容。

If you do really want to log out all this information, you need to change how you're logging.如果您确实想注销所有这些信息,则需要更改您的登录方式。

For example, you could create a String , append each loop, and then log the full output when it's done.例如,您可以创建一个String ,附加每个循环,然后在完成后记录完整的输出。 Note, you could use a StringBuilder for even better results.请注意,您可以使用StringBuilder以获得更好的结果。

// Create a String to hold all the log information.
String log = "";

for (int i=0 ;i < (mSpaceCount + mPulseCount); i++) {
    // Append the log information to our String. 
    // Add a "\n" to add a new line at the end of each line.
    log += "~~~~m_bitDateF[i] : " + m_bitDateF[i] + " i :" + i + "\n";
}

// Finally, log the output.
Log.i("flag", log);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM