在尝试调试我的多线程应用程序时偶尔会出现以下情况。我运行该程序,然后发生一个错误,导致一个有用的消息出现在日志猫...但只有大约四分之一秒才滚出窗口顶部,因为看似永无止境的流 - 如此有用的错误消息涌入窗口。然后我拼命地试图抓住垂直滚动条(现在正在摇晃),以便在窗口缓冲区变得太满以至于丢弃它之前将原始错误消息定位到窗口中。
必须有更好的方法......是否有一个“stop-logging-now”命令/按钮,我可以在错误开始出现时立即点击?
答案 0 :(得分:17)
我已经解决了。我只需拔出USB线。
不是最优雅的解决方案......但它确实有效。
答案 1 :(得分:3)
解决问题的可能方法: -
答案 2 :(得分:2)
logcat的滚动锁仍然很烦人。也许他们应该复制WireShirk滚动行为:
使用鼠标中键滚动时,如果到达最后一行,则会启动自动滚动。如果向上滚动,请取消激活自动滚动。
答案 3 :(得分:1)
+1 CRUSADER的答案。
我有一个不同的解决方案。我构建了一个Logging
类,其接口与Log
相同,后者记录到文件和到logcat。我还添加了使用UncaughtExceptionHandler
的{{1}}。 Logger
中的典型(缩减)代码类似于
Logger
开发public void d(String tag, String message) {
Log.d(tag, message);
logLine('D', tag, message);
}
private void logLine(char category, String tag, String message) {
StringBuilder builder = new StringBuilder(tag.length()+message.length()+1);
builder.append(category).append(':').append(tag).append(':').append(message);
logStream.println(builder.toString());
logStream.flush();
logSize += builder.length()+1;
if (logSize > maxLogSize) {
String name = logName; // keep the old logName for continued message
close();
createLogFile(); // cleanup old logs and open a new one
logStream.println("Log continued from "+name);
}
}
的一个关键原因是能够将其发送给Beta测试人员的错误报告。因为接口是相同的,所以它可以与原始Logger
类一样使用。
答案 4 :(得分:0)
您可能想进入调试模式,并在您感兴趣的位置完全停止执行?
在这段代码中加上一个断点,这样你不仅可以检查错误,还可以查看各种变量的状态!
答案 5 :(得分:0)
最好的方法是过滤logcat消息。编写容易出错的代码时,可以在logcat方法中添加tag参数。然后,在eclipse中,logcat窗口允许您根据该标记过滤消息,因此您只能看到这些日志!
答案 6 :(得分:0)
您可以按
暂停记录ctrl+S
可以按:
恢复记录ctrl+Q