Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 侦听我自己的应用程序生成的LogCat实体_Java_Android_Logcat_Android Logcat - Fatal编程技术网

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方法名称:)

您仍然可以从日志系统中检索应用程序实际记录的消息。