Java 侦听我自己的应用程序生成的LogCat实体
我是否能够通过自己的应用程序监听日志中的消息 比如说像Java 侦听我自己的应用程序生成的LogCat实体,java,android,logcat,android-logcat,Java,Android,Logcat,Android Logcat,我是否能够通过自己的应用程序监听日志中的消息 比如说像 // Somewhere in my application (on a background service): Log.i("myModule", "Something been done"); 还有 // Somewhere else something like... LogCatListener logCatListener = new LogCatListener() { public
// 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
}
}
我是一个机器人noob所以对我温柔点
谢谢。不幸的是,对于典型的日志调用(
.d
,.i
,.w
),您似乎无法直接这样做。如果您查看Log
类()的源代码,您将看到这些调用被转换为println\u native
,一个映射到本机实现的私有函数
此外,日志类是最终类,因此您不能扩展它并将其挂接到.d
,.i
,.e
,.w
如果需要捕获这些调用,恐怕您唯一的解决方案就是编写一个Log
类包装器。这将适用于自定义日志,但显然不适用于系统对Log
类发出的调用
但好消息是有一个特殊的Log
函数允许侦听器。在Log
类中有一个有趣的方法:
public static TerribleFailureHandler setWtfHandler(TerribleFailureHandler handler)
您可以设置一个处理程序,当您执行此操作时将调用该处理程序
Log.wtf (TAG, message)
有趣的google方法名称:)您仍然可以从日志系统中检索应用程序实际记录的消息。