android - 我如何监控 android.util.log 或覆盖它?

标签 android logcat android-log

我在项目的任何地方都使用 log.d/v/w/e。

现在,我想将所有日志保存到设备本地文件中。

然而,android.util.Log类在final类中。

这意味着我无法从中扩展。

有没有办法接管android.util.Log的控制权,这样我就不需要在项目的任何地方更改log.d/v/w/e?

我正在寻找一种简单的方法来了解是否调用了 log.d/v/w/e,以便我可以将信息写入本地文件。

最佳答案

当您需要向最终类添加功能时,一个常见的选择是使用装饰器(包装器)模式:

public class LogUtils {

  public static void LOGE(String tag, String message) {
     Log.e(tag, message);
     doSomethingElse();
  }

  ...
}

这种日志记录实现非常流行。

但是,还有另一种选择来编写您自己的包装器。 jack ·沃顿的图书馆 Timber已经处理了所有实用程序,并添加了一些其他细节,例如自动标记和使用 String.format for Java。

您可以添加自己的功能来处理您自己的诊断逻辑,如下所示:

public class MyLoggingClass extends DebugTree {

  @Override
  public void log(int priority, String tag, String message, Throwable t) {

    if (BuildConfig.DEBUG) {
       super.log(priority, tag, message, t);
    }

    doSomethingElse();

  }
}

关于android - 我如何监控 android.util.log 或覆盖它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55602218/

相关文章:

android - 如何让 google maps api v2 直接转到我的位置

java - 免费版本限制数据库条目

java - 如何判断 Proguard 是否完成了它的工作

android - 如何在 Android 中捕获调制解调器 radio 日志

android - 日志标签最多可包含 23 个字符

android如何以编程方式仅捕获我在应用程序中的日志条目

android - chrome远程调试,设备不显示

android - 错误您需要将 Theme.AppCompat 主题(或后代)与 Activity 一起使用

android - 应用程序仅在真实设备上崩溃 | react 原生 |世博会

android - Android Studio 中某些设备没有 Logcat 输出