Android Studio 查看整个 LogCat 日志

Android Studio see whole LogCat log

有没有办法查看完整的 logcat 日志?我的应用程序出现错误,但我没有时间查看它,因为在错误之后出现了很多文本,并且超出了 logcat 中的行数限制。所以即使我转到顶部,错误也已经消失了。

好的,所以当我进行一些测试时,我找到了解决方案。我是通过 selecting 完成的,所以它只显示错误,这样我就看不到其他消息了。

编辑:

在屏幕底部(或按 Alt + 6)更改为错误模式 select LogCat,然后在第三个下拉菜单 select "Error"选项。

这是另一种存储您的 logcat 详细信息以供测试的想法 试试下面的代码

public static void extractLogToFile() {

    PackageManager manager = getContext().getPackageManager();
    PackageInfo info = null;
    try {
        info = manager.getPackageInfo(getContext().getPackageName(), 0);
    } catch (NameNotFoundException e2) {
    }
    String model = Build.MODEL;
    if (!model.startsWith(Build.MANUFACTURER))
        model = Build.MANUFACTURER + " " + model;

    String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "your App name" + File.separator;
    File folder = new File(filePath);
    if (!folder.exists()) {
        folder.mkdir();
    }
    String fileName = "Logcat-" + (new SimpleDateFormat("dd-MM-yyyy").format(Calendar.getInstance().getTime())) + ".txt";
    File file = new File(folder, fileName);

    InputStreamReader reader = null;
    FileWriter writer = null;

    try {
        // For Android 4.0 and earlier, you will get all app's log output,
        // so filter it to
        // mostly limit it to your app's output. In later versions, the
        // filtering isn't needed.
        String cmd = (Build.VERSION.SDK_INT <= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) ? "logcat -d -v time MyApp:v dalvikvm:v System.err:v *:s" : "logcat -d -v time";

        // get input stream
        Process process = Runtime.getRuntime().exec(cmd);
        reader = new InputStreamReader(process.getInputStream());

        // write output stream
        writer = new FileWriter(file, true);
        writer.write("Android version: " + Build.VERSION.SDK_INT + "\n");
        writer.write("Device: " + model + "\n");
        writer.write("App version: " + (info == null ? "(null)" : info.versionCode) + "\n");

        char[] buffer = new char[10000];
        do {
            int n = reader.read(buffer, 0, buffer.length);
            if (n == -1)
                break;
            writer.write(buffer, 0, n);
        } while (true);

        reader.close();
        writer.close();
    } catch (IOException e) {
        if (writer != null)
            try {
                writer.close();
            } catch (IOException e1) {
            }
        if (reader != null)
            try {
                reader.close();
            } catch (IOException e1) {
            }
    }
}

希望这会奏效

通过此代码,您可以在 phone 存储中存储 logcat 详细信息。 确保清单文件中提到的存储权限以及实施运行时权限。

您应该在 Android Studio 中使用过滤器。以下是您的一些选择:

  1. 仅将输出限制到您的应用程序:

  1. 将输出限制为仅错误消息:

  1. 将自定义TAG添加到抛出错误的地方并按其过滤:

    Log.e(custom_tag, message, throwable);

此外,如果您不希望 logcat 自动滚动,只需 select 在中间输出一段(或向上滚动)即可。