我能否通过我自己的应用程序监听放置在 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/