1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-05 04:37:38 +02:00

adding a processor for basic git information

Adds the current Git Branch, and Git Commit key to the extra field
This commit is contained in:
otternq
2013-11-16 17:40:16 -08:00
parent 6225b22de9
commit 9c57967700
2 changed files with 90 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Processor;
/**
* Injects Git branch and Git commit SHA in all records
*
* @author Nick Otter
*/
class GitProcessor
{
/**
* @param array $record
* @return array
*/
public function __invoke(array $record)
{
$branch = self::getBranch();
$commit = self::getCommit();
$record['extra'] = array_merge(
$record['extra'],
array(
'git' => array(
'branch' => $branch,
'commit' => $commit
),
)
);
return $record;
}
static protected function getBranch() {
$branches = explode("\n", `git branch`);
foreach ($branches as $branch) {
if ($branch[0] == "*") {
return substr($branch, 2);
}
}
return $branches;
}
static protected function getCommit() {
$s = `git rev-parse HEAD`;
return $s;
}
}

View File

@@ -0,0 +1,31 @@
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Processor;
use Monolog\TestCase;
class GitProcessorTest extends TestCase
{
/**
* @covers Monolog\Processor\GitProcessor::__invoke
*/
public function testProcessor()
{
$processor = new GitProcessor();
$record = $processor($this->getRecord());
$this->assertArrayHasKey('git', $record['extra']);
$this->assertTrue(!is_array($record['extra']['git']['branch']));
}
}