是否可以在未植根的设备上设置日志级别? 所以我想以某种方式更改设备日志级别以“调试”。这是可以做到的吗?
因为它没有根源我不认为setprop会起作用。 我也无法更改local.prop文件,因为我没有权限这样做。
除了可能变得幸运并找到一个隐藏菜单,其中包含日志级别。 有没有办法让我以其他方式提高日志级别?
感谢您的帮助。
答案 0 :(得分:12)
setprop
:
local.prop
,则可以通过重新启动来保留属性,这只能在有根电话上使用。记录级:
Log.d()
,那么它将处于“调试”级别,除非您更改代码并重新编译,否则无法更改。如果您执行Log.?
而不管级别如何,则没有任何内容可以隐藏日志消息。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()
我知道没有全局loglevel。
答案 1 :(得分:2)
让我建议一个微小的替代标准日志类(我是作者)
它向后兼容,因此您只需修改导入。然后,您可以通过Log.level(Log.D)
或Log.level(Log.W)
等设置应用的最低日志级别,也可以使用Log.useLog(false)
禁用日志。无需修改现有的日志记录代码。
尽管它的体积很小,但这个记录器兼容JVM和Android,可以让你跳过"标签"参数,简化了用逗号分隔的多个值或使用格式字符串的日志记录。所以它非常方便,易于迁移,只能为你的APK大小增加~4千字节。