是否有可能在Android监视器中读取Slog?

时间:2017-06-04 17:31:05

标签: android android-log

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

1 个答案:

答案 0 :(得分:2)

简短回答

默认情况下,您使用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参数似乎是一个安全的赌注。