【问题标题】:How to save logs to internal storage at the end of the app being used?如何在使用的应用程序结束时将日志保存到内部存储?
【发布时间】:2022-02-03 13:14:36
【问题描述】:

我的问题可能并不那么难。我只想使用 Kotlin 在 android studio 中保存 logcat 的日志。基本上,只要应用程序关闭,我只需要将 logcat 中的所有文本以可读的方式保存为文本文件。 它需要与 28 和最高版本 31 的 API 版本一起使用。 非常感谢您。

【问题讨论】:

    标签: android kotlin logging


    【解决方案1】:

    I don't think you're supposed to

    READ_LOGS 在 API 级别 1 中添加

    public static final String READ_LOGS

    允许应用程序读取低级系统日志文件。

    不供第三方应用程序使用,因为日志条目可能包含用户的私人信息。

    有一些解决方案 here 使用 Runtime#exec 来运行 logcat 命令 - 但老实说,如果您只想保存自己的应用程序日志,您可能最好使用像 Timber 这样的库并创建一个Tree,它还写出每一行以及调用Log。

    (您可以创建自己的包装函数,但这需要您记住调用它们 - Timber 为您做了很多工作,这很方便!)

    这不会捕获您的应用生成的其他记录内容,例如库日志和系统信息。

    【讨论】:

    • 实际上,我将其用于测试应用程序,该公司将仅在公司样品手机上使用该应用程序。所以泄露私人信息是可以的。我也在使用木材,但我不知道如何使用它来将我的日志写入文件。
    • 我认为系统的暗示会阻止你这样做,除非你的应用程序在白名单上,这就是通常的权限工作方式。您可以尝试该线程中的解决方案,看起来很hacky,但它们可能对您有用吗?但是,如果您已经在使用 Timber 并且该级别的日志记录适合您,只需查看示例:github.com/JakeWharton/timber/blob/trunk/timber-sample/src/main/… Tree 只是调用其他一些日志记录库,您只需要编写每条消息到你打开的文件
    • 好的,感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多