是否可以在 android 监视器中读取 Slog?

Posted

技术标签:

【中文标题】是否可以在 android 监视器中读取 Slog?【英文标题】:Is it possible to read the Slog in android monitor? 【发布时间】:2017-11-05 12:25:10 【问题描述】:

android源代码中我经常看到Slog.v(WindowManagerService.TAG, "First window added to " + this + ", creating SurfaceSession");这样的行我如何在android监视器下看到那些Slog? Slog和Log有什么区别?

【问题讨论】:

【参考方案1】:

简答

默认情况下,您会使用Slog 记录日志,但它们会“隐藏”在其他日志消息之间。为了只获取使用Slog 记录的那些,请使用以下命令:

adb logcat -b system

长答案

我查看了Slog.java的来源:

public static int v(String tag, String msg) 
    return Log.println_native(Log.LOG_ID_SYSTEM, Log.VERBOSE, tag, msg);

Log.java相比:

public static int v(String tag, String msg) 
    return println_native(LOG_ID_MAIN, VERBOSE, tag, msg);

如您所见,区别仅在于LOG_ID 参数。

然后我看了adb logcat -help

  ...
  -b <buffer>     Request alternate ring buffer, 'main', 'system', 'radio',
                  'events', 'crash' or 'all'. Multiple -b parameters are
                  allowed and results are interleaved. The default is
                  -b main -b system -b crash.
  ...

我没有进一步检查 - -b 选项对应于不同的 LOG_ID 参数看起来很安全。

【讨论】:

感谢 vasiliy,如果我执行 adb logcat -b system 我会看到日志出现在 android 监视器中还是仅出现在 Windows 控制台中? @lok​​i 我总是使用命令行。也许有办法在Android Studio中得到它,但我不知道如何......

以上是关于是否可以在 android 监视器中读取 Slog?的主要内容,如果未能解决你的问题,请参考以下文章

Android 应用程序在 onPostExecute() 中崩溃,没有任何错误

导出 android studio profiler 数据

从下拉列表中的选定文件中读取文本到richtextbox

是否可以在 Android 上读取与第三方应用程序的 NFC 通信?

建议日志 slog 改换 tracing

建议日志 slog 改换 tracing