wdmiraal/wind

此包已被废弃,不再维护。未建议任何替代包。

轻量级、符合PSR规范的日志服务器,适用于快速高效的日志记录。Wind暴露了一个REST服务器,但不提供任何日志功能。

dev-master 2014-05-16 11:50 UTC

This package is not auto-updated.

Last update: 2022-11-07 16:19:55 UTC


README

Build Status Coverage Status Code Climate

Wind是一个轻量级且快速的PHP日志服务器。

目标

日志记录可能会减慢PHP应用程序的速度。PHP在同一个进程中运行一切,日志操作可能会很重,无论是在内存还是在I/O方面。虽然存在一些解决方案来分割工作负载并让另一个应用程序处理日志记录,但大多数都是重量级的,并且需要复杂的设置。

Wind暴露了一个轻量级的REST服务器,主PHP应用程序可以将其作为日志请求的接收端。这将触发一个新的PHP进程用于实际的日志记录,使主应用程序专注于其主要任务。

Wind以HTTP/1.0 204 No Response响应,立即终止调用应用程序的请求。然后Wind继续将日志请求转发到所选的库,该库将持久化日志。

Wind本身不提供任何日志功能。它旨在与PSR-3兼容的日志库(如Monolog)一起使用。

安装

最简单的方法是通过Composer。创建一个composer.json文件,或者复制Wind附带的composer.json.dist文件。

{
    "require": {
        "wadmiraal/wind": "dev-master"
    }
}

接下来,调用composer install,或者如果您之前已经安装了包,则调用composer update

使用方法

您可以在vendor/bin/server.php中找到一个示例脚本。

注意:以下内容仅在通过Composer安装的情况下有效。

vendor/bin/server.sh启动PHP内置服务器,不建议在生产环境中使用;它仅用作示例。该脚本监听localhost:6789并将请求路由到vendor/bin/server.php。您可以使用以下命令使用它

cd vendor/bin
chmod +x server.sh
./server.sh

这将启动一个Wind服务器,使用Monolog(如果失败,请确保更新您的composer.json以包含"monolog/monolog": "1.9.1")。

您现在可以使用Wind\Client\Logger类发送日志请求。

use Psr\Log\LogLevel;
use Wind\Client\Logger;
use Wind\Server\Router;

$logger = new Logger('https://:6789', new Router());

$logger->log(LogLevel::NOTICE, 'Log this message for me', array('in_context' => 'of something'));

查看vendor/bin/server.php以获取使用Monolog在Wind服务器端的具体示例。有许多设置方法,但一个好的想法是为Wind设置一个Apache或Nginx虚拟主机,特别是用于Wind。这甚至可以在不同的服务器上运行,以进一步减轻应用程序服务器的负载(在这种情况下,请确保保护它免受公开写入)。

以下是一个使用Monolog的基本示例

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Wind\Server\EndPoint;
use Wind\Server\Router;

$logger = new Logger('name');
$logger->pushHandler(new StreamHandler('./log.log', Logger::DEBUG));
$wind = new EndPoint($logger, new Router());
$wind->run();