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=newZMQContext();$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操作,接收并将数据打印出来。
voidLogReceiver(){using(ZmqContextctx=ZmqContext.Create()){using(ZmqSocketsub=ctx.CreateSocket(SocketType.SUB)){sub.Connect("tcp://"+address.Text+":"+port.Text);sub.SubscribeAll();sub.ReceiveReady+=(s,e)=>{stringlog=sub.Receive(Encoding.UTF8);HandleLog(log);};varpoller=newPoller(newList<ZmqSocket>{sub});while(_recvgo){try{poller.Poll();}catch(Exceptionex){}}}}}
在集成到实际项目中还会出现很多问题,我这里只是做个简单的demo展示一下。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。