PHP Log时时查看小工具

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:


以前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展示一下。

 

demo下载:

http://download.csdn.net/detail/loneleaf1/7981505

 

参考资料:

http://zeromq.org/ zmq主页

http://pecl.php.net/package/zmq php dll下载

http://news.cnblogs.com/n/154000/ ZMQ的学习和研究

https://github.com/zeromq/clrzmq  clrzmq — Official 0MQ Bindings for .NET and Mono



    本文转自 咖啡机(K.F.J)   博客园博客,原文链接:http://www.cnblogs.com/strick/p/3987694.html,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
5月前
|
监控 Ubuntu 安全
如何在 VPS 上安装和使用 Logwatch 日志分析器和报告工具
如何在 VPS 上安装和使用 Logwatch 日志分析器和报告工具
59 1
|
2月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
57 8
|
2月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
|
2月前
|
运维 Prometheus 监控
特定用途的日志分析工具
【10月更文挑战第20天】
77 5
|
2月前
|
存储 机器学习/深度学习 传感器
商业日志分析工具
【10月更文挑战第20天】
60 5
|
2月前
|
存储 运维 监控
开源日志分析工具
【10月更文挑战第20天】
124 3
|
3月前
|
敏捷开发 存储 数据可视化
解锁团队高效秘诀:5款顶尖PHP任务管理工具推荐
在现代企业中,高效的任务管理系统已成为不可或缺的工具,特别是在团队协作和项目管理中。PHP任务管理系统因其灵活性、开源性和易用性,备受企业管理者、项目团队和开发人员青睐。本文将介绍什么是PHP任务管理系统,其应用场景,以及推荐5款顶级的PHP任务管理系统,帮助企业提升效率和管理能力。
49 2
|
3月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
46 1
|
4月前
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入探索与实践在软件开发的广袤天地中,PHP以其独特的魅力和强大的功能,成为无数开发者手中的得力工具。而在这条充满挑战与机遇的征途上,设计模式犹如一盏明灯,指引着我们穿越代码的迷雾,编写出更加高效、灵活且易于维护的程序。今天,就让我们聚焦于设计模式中的璀璨明珠——策略模式,深入探讨其在PHP中的实现方法及其实际应用价值。
策略模式,这一设计模式的核心在于它为软件设计带来了一种全新的视角和方法。它允许我们在运行时根据不同情况选择最适合的解决方案,从而极大地提高了程序的灵活性和可扩展性。在PHP这门广泛应用的编程语言中,策略模式同样大放异彩,为开发者们提供了丰富的创作空间。本文将从策略模式的基本概念入手,逐步深入到PHP中的实现细节,并通过一个具体的实例来展示其在实际项目中的应用效果。我们还将探讨策略模式的优势以及在实际应用中可能遇到的挑战和解决方案,为PHP开发者提供一份宝贵的参考。