keboola / gelf-server
用于GELF日志的简单PHP服务器
4.0.0
2023-02-02 15:10 UTC
Requires
- php: ^8.1
- ext-json: *
- ext-zlib: *
- graylog2/gelf-php: ^2.0
- react/datagram: ^1.9
- react/socket: ^1.12
- symfony/process: ^5.4|^6.0
Requires (Dev)
- ext-sockets: *
- keboola/coding-standard: >=14.0
- phpstan/phpstan: ^1.9
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-symfony: ^1.2
- phpunit/phpunit: ^9.5
- sempro/phpunit-pretty-print: ^1.4
- symfony/dotenv: ^5.4|^6.0
README
这是一个与gelf兼容的后端如Graylog2的PHP实现。这个库提供了一个简单的服务器,GELF客户端可以连接到这个服务器。
安装
推荐通过composer安装
将gelf-server添加到composer.json中,通过运行composer require keboola/gelf-server
或手动定义
"require": {
// ...
"keboola/gelf-server": "^1.1"
// ...
}
重新安装依赖:composer install
使用方法
要创建服务器,使用ServerFactory
类
$server = ServerFactory::createServer(ServerFactory::SERVER_TCP);
要开始监听连接,使用start
方法。此方法有以下参数
$minPort
和$maxPort
- 设置服务器监听的端口号。如果要监听单个端口,请将$minPort
和$maxPort
设置为相同的值。否则,服务器将在指定的范围内随机选择一个空闲端口号(包括指定范围)。$onStart
- 当服务器成功开始监听时执行的回调,回调签名是function ($port)
,它提供了服务器实际监听的端口号。$onProcess
- 当服务器运行时定期执行的回调。回调的签名是function (&$terminated)
。服务器将无限期运行,直到你在此回调中将$terminated
设置为true。$onEvent
- 当接收到GELF事件时执行的回调。回调的签名是function ($event)
。变量$event
包含一个关联数组,其中包含GELF字段。$onTerminate
- 可选的回调,在服务器终止时执行(在停止监听连接后)。回调签名是function ()
。
示例
有关使用示例,请参阅/examples目录。
许可证
MIT许可,请参阅LICENSE文件。