【问题标题】:How to collect LogCat messages in an Android application如何在 Android 应用程序中收集 LogCat 消息
【发布时间】:2013-12-28 03:45:51
【问题描述】:

我有一个应用程序,我想收集指定级别和标签的 LogCat 消息。

我可以在某个时候以某种方式获取累积的消息吗?我不想一一收集消息,它应该是它们的总和,就像我使用 adb 读取实际日志时一样。这可能吗?

【问题讨论】:

  • 请看我之前的帖子:stackoverflow.com/questions/19897628/…
  • 您的回答似乎很有希望,尤其是 extractLogToFile。但是,当我在具有以下行的 2.3 手机上使用:“logcat -d -v MyTAG:v :S” 时,我总是在 reader.read()。我应该设置什么?
  • 这可能意味着您对 logcat 的过滤排除了所有行。尝试删除过滤器,看看你是否得到了什么。
  • 我没有所需的权限。添加后,效果很好。

标签: android logcat


【解决方案1】:

试试这个:请注意,在 Android 4 中,除非您具有 root 访问权限,否则您只会看到由您自己的应用编写的日志消息。

public static String getLog(Context c) {
    try {
        Process process = Runtime.getRuntime().exec("logcat -d");
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));

        StringBuilder log = new StringBuilder();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            log.append(line);
            log.append("\n");
        }

       return log.toString();

    } catch (IOException e) {
       return null;
    }
}

【讨论】:

  • 很重要的一点:阅读日志需要权限!在您的清单中使用它:
  • 您不需要此权限即可在 Api 16 中收集您自己的应用程序日志。请参阅 hackbod(android 软件工程师)的这篇文章。 groups.google.com/d/msg/android-developers/6U4A5irWang/…
  • 感谢您的信息。我从 API 级别 10 开始使用我的日志收集器。
【解决方案2】:

为什么不直接将它们写入文件呢? LogCat 是真正的实时日志。有很多高质量的日志记录包可以记录到一个文件中,如果你想这样做的话。

举个例子:

How to write logs in text file when using java.util.logging.Logger

【讨论】:

    猜你喜欢
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    相关资源
    最近更新 更多