QPM 使用日志,接入第三方日志

8 篇文章 0 订阅

关于QPM:
QPM全名是 Quick Process Management Framework for PHP. PHP 是强大的web开发语言,以至于大家常常忘记PHP 可以用来开发健壮的命令行(CLI)程序以至于daemon程序。 而编写daemon程序免不了与各种进程管理打交道。QPM正式为简化进程管理而开发的类库。QPM的项目地址是: https://github.com/Comos/qpm

安装和使用PHP进程管理框架 QPM
使用QPM编写PHP 多进程程序
使用qpm创建daemon程序
PHP Daemon开发-使用QPM管理PID文件
PHP使用QPM实现多进程并行任务处理程序

在QPM中使用日志

Daemon程序开发时,日志记录至关重要,很多问题的排查,性能分析,错误监控等都依赖日志进行。

QPM 的日志模块支持三种模式-关闭、简单模式 和 接入第三方模块模式。

关闭日志

默认情况,QPM日志是关闭的, 也可通过如下代码关闭已经开启的日志。

qpm\log\Logger::useNullLogger();

简单模式

简单模式主要提供给程序开发、调试 和演示用,生产环境建议和公共日志模块进行整合。
开启简单模式,需要传入日志文件路径:

qpm\log\Logger::useSimpleLogger('/tmp/qpm.log');

使用第三方日志

由于QPM 对接了 Psr\Log\LoggerInterface, 因此,只要符合 PHP-FIG psr-3的日志模块,均可接入。
例如,Monolog 就是一个psr-3的实现。下面是在QPM使用Monolog的例子。

在一个新目录下,建立 composer.json文件:

{
    "require": {
        "monolog/monolog": ">1.12",
        "Comos/qpm":">=0.3"
    }
}

执行如下命令:

composer install

编写PHP代码:qpm_monolog_demo.php

<?php
use Monolog\Handler\StreamHandler;
use Monolog\Logger;

include __DIR__.'/vendor/autoload.php';

$logger = new Logger('qpm');
$logger->pushHandler(new StreamHandler(__FILE__.'.log'));
//初始化qpm的Logger
qpm\log\Logger::setLoggerImpl($logger);

function doSomething()
{
  sleep(1);
  throw new Exception('xxx');
}

qpm\supervisor\Supervisor::oneForOne(['runnableCallback' =>  'doSomething'])->start();

命令行执行 php qpm_monolog_demo.php

同一目录下会生成 qpm_monolog_demo.php.log文件, 进程的停启用 和 异常信息,都被记录在案。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值