gpt4 book ai didi

android - 设置 Android 日志级别

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:54 48 4
gpt4 key购买 nike

是否可以在未 root 的设备上设置日志级别?所以我想以某种方式将设备日志级别更改为“调试”。这是可以做到的吗?

因为它没有根我不认为 setprop 会工作。我也无法更改 local.prop 文件,因为我没有这样做的权限。

除了可能幸运地找到一个包含日志级别的隐藏菜单。有没有其他方法可以提高日志级别?

感谢您的帮助。

最佳答案

设置属性:

  • 在您重新启动设备之前是暂时的,即使是在已获得 root 权限的手机上也是如此。
  • 如果将属性写入 local.prop,则可以通过重新启动来保留属性,这只有在已获得 root 权限的手机上才有可能。
  • 一些属性是只读的,只有当你改变一些初始文件时才能改变。这在获得 root 权限的手机上什至是不可能的。
  • 每个设备(或固件)都可以有一组不同的属性。获得 root 权限的手机不会自动拥有更多。

日志级别:

  • 如果打印日志的代码显示为 Log.d(),那么它将处于“调试”级别并且您无法更改它,除非您更改代码并重新编译它。如果您执行 Log.?,无论级别如何,都不会隐藏日志消息。
  • 如果您有固件的发布版本,Android 框架会隐藏一些日志消息。要显示这些,您需要将固件重新编译为调试版本。也没有机会让这些在已获得 root 权限的手机上显示。
  • 某些消息由代码中的局部变量控制,例如 if (LOCAL_LOGV) Log.v(... - 您需要更改此处的代码才能看到这些消息。
  • 一些消息由 Config.LOGV 控制(= 总是 false)参见 Config .也无法更改此处损坏的行为。您需要重新编译。
  • 在您启用某个属性之前,其他一些日志消息会被隐藏:

例子

public static final boolean DEBUG_SQL_CACHE =
Log.isLoggable("SQLiteCompiledSql", Log.VERBOSE);

// somewhere in code
if (SQLiteDebug.DEBUG_SQL_CACHE) {
Log.d(TAG, "secret message!");
}

如果您执行 adb shell setprop log.tag.SQLiteCompiledSql VERBOSE,您应该会看到这些消息弹出。 Log#isLoggable()

据我所知,没有全局日志级别。

关于android - 设置 Android 日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289129/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com