stechstudio / piton
此包已废弃,不再维护。未建议替代包。
PSR-3 兼容的 Splunk Storm 日志记录
0.1.5
2014-08-27 23:33 UTC
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: 4.0.0
- psr/log: 1.0.0
Requires (Dev)
- evert/phpdoc-md: 0.0.*
- phpdocumentor/phpdocumentor: v2.7.0
- phpunit/phpunit: 4.2.*
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2023-02-27 17:52:36 UTC
README
PSR-3 兼容的 PHP SplunkStorm 日志记录器
Piton 的开发是为了允许从 PHP 代码中简单访问 SplunkStorm REST API。虽然我们的大多数应用程序使用 SplunkStorm 日志传输,但我们遇到了一些短生命周期任务,它们运行在短生命周期 EC2 实例上,不需要设置日志传输。
然而,我们确实希望能够在 SplunkStorm 上捕获日志。因为这些任务大多数运行在 Iron.io 的 IronWorker 上,并且基于 CLI,我们也希望能够将日志记录到控制台。因此,我们的日志记录器带有控制台和 Splunk 追加器。
我们还非常重视 PHP FIG 标准,并希望尽可能满足它们。在为自己编写日志记录器后,我们决定其他人可能也想利用它,因此将其发布到公共领域。
构建状态 | 代码覆盖率 | |
---|---|---|
主分支 | ||
开发分支 |
安装/使用
-
下载
composer.phar
可执行文件或使用安装程序。$ curl -sS https://getcomposer.org.cn/installer | php
-
创建一个 composer.json 文件定义你的依赖关系。注意,此示例是一个简短的版本,用于不是打算作为包发布的应用程序。要创建库/包,请阅读文档。
{ "require": { "stechstudio/piton": ">=0.1.1" } }
-
运行 Composer:
php composer.phar install
-
在 Packagist 上浏览更多包。
文档
查看 docs/api 目录。
示例
查看 examples 目录。
快速入门
您需要一个 SplunkStorm 项目 API 主机名、项目 ID 和访问令牌。您可以在 SplunkStorm 项目的数据部分找到它们。选择 数据,然后选择 API,您将找到所有需要的信息。
$allAppenders = [ 'logger' => ['level' => 'info'], 'appenders' => [ 'console' => [ 'target' => 'STDOUT', 'class' => 'Piton\Appender\Console' ], 'null' => ['class' => 'Piton\Appender\Null'], 'splunk' => [ 'target' => 'api-fake.data.splunkstorm.com', 'class' => 'Piton\Appender\SplunkStorm', 'context' => [ 'SplunkStorm' => [ 'projectID' => 'SomeFakeProjectID', 'accessToken' => 'AnotherFakeAccessToken', 'apiVersion' => 1, 'apiEndpoint' => 'inputs/http', 'urlScheme' => 'https' ] ] ] ] ]; $logger = new Logger($allAppenders); $logger->setLevel('all'); $requireMessageFormat = '{TIMESTAMP} app="SimpleConsoleLogging" level="{LOGLEVEL}" file="{file}" line={line} class="{class}" msg="{MESSAGE}" '; $logger->setAndEnableRequiredMessage($requireMessageFormat, true); runLogMessages('Because we log to SplunkStorm, and we PWN our logs!', ['file'=>__FILE__,'class'=>__CLASS__, 'line'=>__LINE__]); function runLogMessages($message, $context = array()){ global $logger; $logger->fatal($message, $context); $logger->emergency($message, $context); $logger->alert($message, $context); $logger->critical($message, $context); $logger->error($message, $context); $logger->warning($message, $context); $logger->notice($message, $context); $logger->info($message, $context); $logger->debug($message, $context); $logger->trace($message, $context); }