我使用循环输出日志,但并非所有日志都完全打印在logcat中,并且不显示一些丢失的日志信息。如何完整输出所有信息?
for (int i=0;i<(mSpaceCount + mPulseCount);i++)
{
Log.i("flag", "~~~~m_bitDateF[i] : "+m_bitDateF[i]+" i :"+i);
}
输出如下:
............
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
............
您可以看到在 449 到 601 和 604 到 749 之后跳过了输出,但应该执行循环,但没有输出。我不知道为什么没有所有的输出,问题是随机的,有时它会正常输出。如何使日志猫完成输出日志?
在查看 Logcat 时,您应该查看左侧的时间戳。 18:43:24.215
例如。.215
是毫秒。如果你看一下在同一毫秒内结束的输出,你可以看到你每毫秒输出大约 20 行输出。
现在,查看您跳过数字的输出,查看毫秒。
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
它跳过了大约 3 毫秒。
所以,正在发生的事情是你正在注销所有内容,它只是使 LogCat 过载,太多了无法打印出来。
如果您确实想注销所有这些信息,则需要更改日志记录方式。
例如,您可以创建一个String
,追加每个循环,然后在完成后记录完整输出。请注意,您可以使用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);