Android Studio просмотреть весь журнал LogCat

Есть ли способ увидеть полный журнал logcat? У меня есть ошибка в моем приложении, но у меня нет времени ее увидеть, потому что после ошибки появляется много текста, превышающее ограничение на количество строк в logcat. Так что, даже если я перейду наверх, ошибка уже исчезнет.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
1 423
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Итак, пока я проводил некоторое тестирование, я нашел решение. Я сделал это, выбрав так, чтобы отображались только ошибки, поэтому я не вижу другие сообщения.

Редактировать:

Чтобы перейти в режим ошибки, выберите LogCat внизу экрана (или нажмите Alt + 6), а затем в третьем раскрывающемся списке выберите опцию «Ошибка».

Вы также можете добавить информацию о том, как и где вы его выбрали, чтобы ваш ответ был полезен другим пользователям.

Psytho 15.03.2018 12:10

Это еще одна идея для хранения деталей вашего журнала для целей тестирования. Попробуйте под кодом

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) {
            }
    }
}

надеюсь, что это сработает

С помощью этого кода вы можете хранить детали logcat в памяти телефона. убедитесь, что в вашем файле манифеста указано разрешение на хранение, а также реализуйте разрешение времени выполнения.

Ответ принят как подходящий

Вы должны использовать фильтр в Android Studio. Вот несколько вариантов:

  1. Ограничьте вывод только своим приложением:

  1. Ограничьте вывод только сообщениями об ошибках:

  1. Добавьте настраиваемый ТЕГ туда, где возникла ошибка, и отфильтруйте по нему:

    Log.e(custom_tag, message, throwable);

Кроме того, если вы не хотите, чтобы logcat прокручивался автоматически, просто выберите часть вывода посередине (или прокрутите вверх).

Каждый раз, когда моя программа запускается, генерируется огромный logcat, и через некоторое время часть logcat больше не отображается, даже после использования фильтров. где хранится весь этот логарифм в android-studio. Как я могу получить к нему доступ?

Dante 24.07.2018 12:26

Другие вопросы по теме