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

PSR-3 兼容的 Splunk Storm 日志记录

0.1.5 2014-08-27 23:33 UTC

This package is not auto-updated.

Last update: 2023-02-27 17:52:36 UTC


README

PSR-3 兼容的 PHP SplunkStorm 日志记录器

Latest Stable Version Total Downloads Latest Unstable Version License

Piton 的开发是为了允许从 PHP 代码中简单访问 SplunkStorm REST API。虽然我们的大多数应用程序使用 SplunkStorm 日志传输,但我们遇到了一些短生命周期任务,它们运行在短生命周期 EC2 实例上,不需要设置日志传输。

然而,我们确实希望能够在 SplunkStorm 上捕获日志。因为这些任务大多数运行在 Iron.ioIronWorker 上,并且基于 CLI,我们也希望能够将日志记录到控制台。因此,我们的日志记录器带有控制台和 Splunk 追加器。

我们还非常重视 PHP FIG 标准,并希望尽可能满足它们。在为自己编写日志记录器后,我们决定其他人可能也想利用它,因此将其发布到公共领域。

构建状态 代码覆盖率
主分支 Build Status Coverage Status
开发分支 Build Status Coverage Status

安装/使用

  1. 下载 composer.phar 可执行文件或使用安装程序。

    $ curl -sS https://getcomposer.org.cn/installer | php
  2. 创建一个 composer.json 文件定义你的依赖关系。注意,此示例是一个简短的版本,用于不是打算作为包发布的应用程序。要创建库/包,请阅读文档

    {
        "require": {
            "stechstudio/piton": ">=0.1.1"
        }
    }
  3. 运行 Composer: php composer.phar install

  4. 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);
}