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 中使用过滤器。以下是您的一些选择:
- 仅将输出限制到您的应用程序:
- 将输出限制为仅错误消息:
将自定义TAG添加到抛出错误的地方并按其过滤:
Log.e(custom_tag, message, throwable);
此外,如果您不希望 logcat 自动滚动,只需 select 在中间输出一段(或向上滚动)即可。
有没有办法查看完整的 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 中使用过滤器。以下是您的一些选择:
- 仅将输出限制到您的应用程序:
- 将输出限制为仅错误消息:
将自定义TAG添加到抛出错误的地方并按其过滤:
Log.e(custom_tag, message, throwable);
此外,如果您不希望 logcat 自动滚动,只需 select 在中间输出一段(或向上滚动)即可。