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




Итак, пока я проводил некоторое тестирование, я нашел решение. Я сделал это, выбрав так, чтобы отображались только ошибки, поэтому я не вижу другие сообщения.
Редактировать:
Чтобы перейти в режим ошибки, выберите LogCat внизу экрана (или нажмите Alt + 6), а затем в третьем раскрывающемся списке выберите опцию «Ошибка».
Это еще одна идея для хранения деталей вашего журнала для целей тестирования. Попробуйте под кодом
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. Вот несколько вариантов:
Добавьте настраиваемый ТЕГ туда, где возникла ошибка, и отфильтруйте по нему:
Log.e(custom_tag, message, throwable);
Кроме того, если вы не хотите, чтобы logcat прокручивался автоматически, просто выберите часть вывода посередине (или прокрутите вверх).
Каждый раз, когда моя программа запускается, генерируется огромный logcat, и через некоторое время часть logcat больше не отображается, даже после использования фильтров. где хранится весь этот логарифм в android-studio. Как я могу получить к нему доступ?
Вы также можете добавить информацию о том, как и где вы его выбрали, чтобы ваш ответ был полезен другим пользователям.