From 889b25a72bef53f05e0a54fe2d5a5443c4936344 Mon Sep 17 00:00:00 2001 From: mahone3297 <329730566@qq.com> Date: Mon, 14 Aug 2017 14:19:59 +0800 Subject: [PATCH] [feature] add host processor --- doc/02-handlers-formatters-processors.md | 1 + src/Monolog/Processor/HostnameProcessor.php | 34 +++++++++++++++++++ .../Processor/HostnameProcessorTest.php | 30 ++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 src/Monolog/Processor/HostnameProcessor.php create mode 100644 tests/Monolog/Processor/HostnameProcessorTest.php diff --git a/doc/02-handlers-formatters-processors.md b/doc/02-handlers-formatters-processors.md index 9987908c..92ba360b 100644 --- a/doc/02-handlers-formatters-processors.md +++ b/doc/02-handlers-formatters-processors.md @@ -155,6 +155,7 @@ - [_GitProcessor_](../src/Monolog/Processor/GitProcessor.php): Adds the current git branch and commit to a log record. - [_MercurialProcessor_](../src/Monolog/Processor/MercurialProcessor.php): Adds the current hg branch and commit to a log record. - [_TagProcessor_](../src/Monolog/Processor/TagProcessor.php): Adds an array of predefined tags to a log record. +- [_HostnameProcessor_](../src/Monolog/Processor/HostnameProcessor.php): Adds the current hostname to a log record. ## Third Party Packages diff --git a/src/Monolog/Processor/HostnameProcessor.php b/src/Monolog/Processor/HostnameProcessor.php new file mode 100644 index 00000000..23ddaf48 --- /dev/null +++ b/src/Monolog/Processor/HostnameProcessor.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\Logger; + +/** + * Injects value of gethostname in all records + */ +class HostnameProcessor +{ + private static $host; + + public function __construct() + { + self::$host = (string) gethostname(); + } + + public function __invoke(array $record): array + { + $record['extra']['hostname'] = self::$host; + + return $record; + } +} diff --git a/tests/Monolog/Processor/HostnameProcessorTest.php b/tests/Monolog/Processor/HostnameProcessorTest.php new file mode 100644 index 00000000..1659851b --- /dev/null +++ b/tests/Monolog/Processor/HostnameProcessorTest.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\Test\TestCase; + +class HostnameProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\HostnameProcessor::__invoke + */ + public function testProcessor() + { + $processor = new HostnameProcessor(); + $record = $processor($this->getRecord()); + $this->assertArrayHasKey('hostname', $record['extra']); + $this->assertInternalType('string', $record['extra']['hostname']); + $this->assertNotEmpty($record['extra']['hostname']); + $this->assertEquals(gethostname(), $record['extra']['hostname']); + } +}