Android Log文件查看工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Log文件查看工具相关的知识,希望对你有一定的参考价值。

参考技术A 最近开发android SDK遇到这一个问题,经常需要查看SDK调用者发过来的Log文件Debug,而这个文件通常很大,对方程序与自己SDK的Log混在一起,看起来很不方便。所以我需要这样一个Log viewer工具,除了常规的根据级别过滤日志之外,最好能根据TAG过滤日志。

在 Java Log Viewer日志查看器 里发现了一个工具,OtrosLogViewer,符合我的要求。

OtrosLogViewer主要应用于Log4j,但是稍加配置也可以用于Android Log。关键是配置Pattern Paser。打开Log4j pattern parser editor,编辑。

我们的Android Log是这样的:

```[ 09-12 14:22:29.980  841:  892 D/BtGatt.btif ]btif_gattc_get_characteristic```

在编辑框中,把pattern parser改为

····

type=log4j

pattern=[ TIMESTAMP  THREAD:  LINE LEVEL/CLASS ]MESSAGE

dateFormat=MM-dd HH:mm:ss.SSS

name=Lo4j-pattern:

charset=UTF-8

customLevels=I=INFO,D=DEBUG,W=WARN,E=ERROR

···

type和name是无所谓的。关键是pattern。android 的 log里面有841和892两个数,估计是PID和TID吧,log4j里面好像没有对应的,所以我就用THREAD和LINE来替代了。

PHP Log时时查看小工具

以前Log都是打印在一个文档中,然后打开文件夹,最后打开文档查看里面的内容,每次打开文件夹感觉很烦。

前些日子看到同事开发.NET的时候,用他自己的一个小工具能够时时查看到Log的内容,非常方便,所以就想移植到PHP开发中。

 

一、查看效果

1、打开客户端小工具mylog.exe,在地址中输入localhost,端口输入5555,点击开始链接,旁边屏幕会显示“开始监听”的字样。

 

2、打开log.php页面,页面很朴素,就打印了一串字符。

 

3、查看mylog.exe,里面已接收到hello字符串

 

二、PHP代码

1)先要下载一个PHP版本的zmq.dll文件

  1、打开链接http://pecl.php.net/package/zmq,点击某个版本的DLL。

  

  2、然后在php.ini中设置

  

  3、log.php中的代码,注意:这里使用的是Publish-subscribe模式,由PHP来Publish,client小工具做subscribe,下图是两者之间的关系。

技术分享

<?php    $context = new ZMQContext ();    $publisher = $context->getSocket (ZMQ::SOCKET_PUB);    $publisher->bind ("tcp://*:5555");    sleep(1); 
    $publisher->send (‘hello‘);    echo ‘已发送hello‘;?>

技术分享

   

 

三、Client代码

  1、总共放了两个文件,client中是可以直接运行的exe文件,mylog中是.NET源码,用VS2010编辑的。打开client文件,只要点击mylog.exe就能打开小工具。

    

  2、clrzmq.dll是.NET中zmq的辅助dll文件,需要引入到源码中

  3、在client中做zmq的sub操作,接收并将数据打印出来。

技术分享

     void LogReceiver()
        {            using (ZmqContext ctx = ZmqContext.Create())
            {                using (ZmqSocket sub = ctx.CreateSocket(SocketType.SUB))
                {
                    sub.Connect("tcp://" + address.Text + ":" + port.Text);
                    sub.SubscribeAll();
                    sub.ReceiveReady += (s, e) =>
                    {                        string log = sub.Receive(Encoding.UTF8);
                        HandleLog(log);
                    };                    var poller = new Poller(new List<ZmqSocket> { sub });                    while (_recvgo)
                    {                        try
                        {
                            poller.Poll();
                        }                        catch (Exception ex)
                        {

                        }
                    }

                }
            }
        }

技术分享

 

在集成到实际项目中还会出现很多问题,我这里只是做个简单的demo展示一下。


以上是关于Android Log文件查看工具的主要内容,如果未能解决你的问题,请参考以下文章

如何查看log日志文件

如何查看log日志文件呢?

PHP Log时时查看小工具

如何在Android上生成Log文件

如何在android手机上查看log

Android工具类篇 Log - 日志信息工具类