我是否可以通过自己的应用程序监听消息是否存入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 noob,所以请对我温柔!
感谢。
答案 0 :(得分:1)
不幸的是,对于典型的日志调用(.d
,.i
,.w
),您似乎无法直接执行此操作。如果查看Log
类(https://android.googlesource.com/platform/frameworks/base/+/android-4.3_r2.1/core/java/android/util/Log.java)的源代码,您会看到这些调用只是被转换为println_native
,这是一个映射到本机实现的私有函数。 / p>
此外,Log类是最终的,因此您无法扩展它并挂钩.d
,.i
,.e
,{{1} }
如果您需要捕获这些调用,我担心您唯一的解决方案是编写.w
类包装器。这适用于您的自定义日志,但显然不适用于系统发出的Log
类调用。
但好消息是有一个允许听众的特殊Log
功能。 Log
课上有一个有趣的方法:
Log
您可以设置将在执行
时调用的处理程序 public static TerribleFailureHandler setWtfHandler(TerribleFailureHandler handler)
有趣的谷歌方法名称:)