gpt4 book ai didi

java - 监听我自己的应用程序制作的 LogCat Entires

转载 作者:行者123 更新时间:2023-11-30 02:56:45 24 4
gpt4 key购买 nike

我能否通过我自己的应用程序监听放置在 LogCat 中的消息?

例如像...

// Somewhere in my application (on a background service):
Log.i("myModule", "Something been done");

和....

    // Somewhere else something like... 
LogCatListener logCatListener = new LogCatListener()
{
public void onInfoRecieved(String tag, String message)
{
//Do whatever you want with the message
}
}

我是 Android 菜鸟,所以请对我温柔一点!

谢谢。

最佳答案

不幸的是,对于典型的日志调用(.d.i.w),您似乎无法直接执行此操作。如果您查看 Log 类 (https://android.googlesource.com/platform/frameworks/base/+/android-4.3_r2.1/core/java/android/util/Log.java) 的源代码,您会发现这些调用只是被转换为 println_native,一个映射到 native 实现。

此外,Log 类是最终类,因此您不能扩展它并挂接到 .d.i.e, .w

如果您需要捕获这些调用,恐怕您唯一的解决方案是编写一个 Log 类包装器。这将适用于您的自定义日志,但显然不适用于系统发出的对 Log 类的调用。

但好消息是有一个特殊的 Log 函数允许监听器。 Log 类中有一个有趣的方法:

 public static TerribleFailureHandler setWtfHandler(TerribleFailureHandler handler)

你可以设置一个处理程序,当你这样做的时候会被调用

   Log.wtf (TAG, message)

有趣的谷歌方法名称:)

关于java - 监听我自己的应用程序制作的 LogCat Entires,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23138276/

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