wdmiraal / wind
轻量级、符合PSR规范的日志服务器,适用于快速高效的日志记录。Wind暴露了一个REST服务器,但不提供任何日志功能。
Requires
- php: >=5.3.0
- psr/log: ~1.0
Requires (Dev)
- phpunit/phpunit: ~3.7.0
Suggests
- monolog/monolog: Sends your logs to files, sockets, inboxes, databases and various web services
This package is not auto-updated.
Last update: 2022-11-07 16:19:55 UTC
README
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();