将 system.out 重定向到 logcat [重复]

Posted

技术标签:

【中文标题】将 system.out 重定向到 logcat [重复]【英文标题】:redirecting system.out to logcat [duplicate] 【发布时间】:2017-11-02 18:39:33 【问题描述】:

我正在将我为桌面应用程序做的系统移植到 android 作为应用程序中包含的 jar。

有没有办法使用 system.out.println(存在于 jar 中)并查看它们登录 logcat(或其他任何地方)?

我目前正在使用 eclipse 中的 adb 在真实设备上进行调试,并且我在 logcat 控制台中正确地看到了设备日志,但没有看到标准输出。

【问题讨论】:

你为什么要使用system.out.println?你可以使用Log.d('Log entry', 'some log entry description or event') 我包含用于桌面应用程序的 java 代码(并且在其构建路径中没有 android),我需要调试该代码在 android 设备上的运行情况,因此我需要结果system.out 在那个罐子里。 显然所有System.out.println 调用都在android 中丢失了。 ***.com/questions/2220547/… 【参考方案1】:

请参阅this 问题。基本上,没有。要登录 Android,您必须使用 Log。 Log.i、Log.d、Log.v 等。您可以使用几种不同风格的日志,并在 Android Monitor 中过滤这些日志。您必须手动将 System.out.println 转换为日志。

但是你可以用 RegEx 替换它们。

1) 在 Eclipse 中不确定,但使用热键进入“全部替换文件路径”窗口(Android Studio 中的 ctrl + shift + r)。

2) 确保正则表达式 (RegEx) 已打开

3) 在“查找”字段中,只需输入

system.out.println\(

4) 替换为

Log\.d("TAG",

你应该很高兴。

【讨论】:

haw.. 所以它没有。我还必须将 e.printStackTrace( 更改为 Log.e(APP_TAG, Log.getStackTraceString(e) 并在我猜的每个项目的构建路径中包含 android ......然后切换回原来的样子......每个时间...

以上是关于将 system.out 重定向到 logcat [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 System.out 重定向到 JavaFX 中的 TextArea

使用System.out.printf()输出日志重定向到文件后显示混乱问题

将 adb logcat 重定向到 android avd

重定向 System.out.println

重定向标准输入/输出

java执行logcat重定向后,怎么停止logcat运行?