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

关于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文件, 进程的停启用 和 异常信息,都被记录在案。

时间: 2024-10-14 04:48:47

QPM 使用日志,接入第三方日志的相关文章

golang第三方日志包seelog配置文件详解

开发任何项目,都离不开日志,配好自己的项目日志输出,往往是开发项目的前提.在golang中,seelog应该是比较有名的日志处理包了,功能非常强大,seelog官方文档 一.seelog主要功能下面我们看看seelog有啥强大 设置不同级别的日志:输出到终端或文件:过滤指定级别日志:定义多种不同的日志输出格式:根据触发日志的文件名或者函数名来区别输出日志:通过 SMTP 或 TCP 转发日志(网络转发日志):滚动日志文件(过期日志自动清除).二.安装seelog$ go get github.c

总结:接入第三方平台登录注册项目

一.需求: facebook.naver.kakao在登录注册浮层的第三方登录需求,要求用户在第三方登录流程中不能中断浮层,即:用户在online登录注册浮层中发起第三方登录时,浮层不能被关闭或者刷新,只能通过将第三方登录的信息会传到过来后,进入下一个流程. 二.第三方登录的流程: 用户在我们的登录注册浮层中发起第三方登录-->打开第三方登录页面-->第三方登录成功后,将信息回传到浮层,然后走接下来的流程. 三.第三方登录碰到的问题及解决: [一]第三方平台给开发者造成的局限性: 1)为了安全

nginx日志及错误日志详解

nginx错误日志信息介绍 配置记录nginx的错误信息是调试nginx服务的重要手段,属于核心功能模块(ngx_core_module)的参数,该参数名字为error_log,可以放在Main区块中全局配置,也可以放置不同的虚拟主机中单独记录虚拟主机的错误信息. error_log的语法格式及参数语法说明如下: error_log    file    level; 关键字        日志文件    错误日志级别 其中,关键字error_log不能改变,日志文件可以指定任意存放日志的目录,

十、syslog日志与loganalyzer日志管理

10.1.rsyslog简介 syslog是一个历史悠久的日志系统.几乎所有的UNIX和Linux操作系统都采用syslog进行系统日志的管理和配置.Linux系统内核和许多程序会产生各种错误信息.警告信息和其他的提示信息.syslog可以根据信息的来源以及信息的重要程度将信息保存到不同的日志文件中.在默认的syslog配置下,日志文件通常都保存在/var/log目录下,在Centos6中,syslog的守护进程为rsyslog,系统启动时,默认会自动运行rsyslog守护进程. 在syslog

重做日志与归档日志区别

重做日志redo log file是LGWR进程从Oracle实例中的redo log buffer写入的,是循环利用的.就是说一个redo log file(group) 写满后,才写下一个.归档日志archive log是当数据库运行在归档模式下时,一个redo log file(group)写满后,由ARCn进程将重做日志的内容备份到归档日志文件下,然后这个redo log file(group)才能被下一次使用. 不管数据库是否是归档模式,重做日志是肯定要写的.而只有数据库在归档模式下,

日志-php-fpm慢日志查询

项目用php开发,在生产运行的过程中,应该一段时间监测下php脚本运行状态,哪些php进程速度太慢,有哪些错误日志. 问:如何来查看检测比较慢的php脚本呢? 答:查看php-fpm慢日志. 1.先查找到配置文件存放地址 find / -name php-fpm.conf vi /usr/servers/php/etc/php-fpm.conf 打开看看你的慢日志是否开启,或者开启的慢日志存放在哪里. 对应的地址都换成你自己的即可. 2.如果没有开启慢日志查询,先开启 默认的 request_s

linux把日志发送到日志服务器上

上一篇我们介绍了rsyslog配置文件.在现网环境中,无论是为了把日志存储更长的时间还是为了分析日志的方便性,我们通常会把日志发送到日志服务器或是日志收集分析系统上.接下来我们介绍一下如何配置. 实验环境: RHEL 7 实验目的: 我们把client上info级别以上的所有日志都发送到日志服务器192.168.202.130上. client: 定义info级别日志,并发送到日志服务器上,在下列位置插入一行 vim /etc/rsyslog # Save boot messages also 

MYSQL启用日志,查看日志

MYSQL启用日志,查看日志 MYSQL启用日志 [[email protected]]# whereis my.ini [[email protected]]# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # cli

java日志框架与日志系统

日志框架:提供日志调用的接口,实际的日志输出委托给日志系统实现. JCL(Jakarta Commons Logging):比较流行的日志框架,很多框架都依赖JCL,例如Spring等. SLF4j:提供新的API,初衷是配合Logback使用,但同时兼容Log4j. 日志系统:负责输出日志 Log4j:较早的日志系统,可以单独使用,也可配合日志框架JCL使用 Logback:Log4j的替代产品,需要配合日志框架SLF4j使用 JUL(java.util.logging):JDK提供的日志系统