diff --git a/README.mdown b/README.mdown index 9fc32d01..e7494dc7 100644 --- a/README.mdown +++ b/README.mdown @@ -183,6 +183,7 @@ Processors - _WebProcessor_: Adds the current request URI, request method and client IP to a log record. - _MemoryUsageProcessor_: Adds the current memory usage to a log record. - _MemoryPeakUsageProcessor_: Adds the peak memory usage to a log record. +- _ProcessIdProcessor_: Adds the process id to a log record. About ===== diff --git a/src/Monolog/Processor/ProcessIdProcessor.php b/src/Monolog/Processor/ProcessIdProcessor.php new file mode 100644 index 00000000..2fa57bcd --- /dev/null +++ b/src/Monolog/Processor/ProcessIdProcessor.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +/** + * Adds value of getmypid into records + * + * @author Andreas Hörnicke + */ +class ProcessIdProcessor +{ + /** + * @param array $record + * @return array + */ + public function __invoke(array $record) + { + $pid = getmypid(); + + $record['extra'] = array_merge( + $record['extra'], + array( + 'process_id' => $pid, + ) + ); + + return $record; + } +} diff --git a/tests/Monolog/Processor/ProcessIdProcessorTest.php b/tests/Monolog/Processor/ProcessIdProcessorTest.php new file mode 100644 index 00000000..3d954fb0 --- /dev/null +++ b/tests/Monolog/Processor/ProcessIdProcessorTest.php @@ -0,0 +1,29 @@ + + * + * 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 ProcessIdProcessorTest extends TestCase +{ + /** + * @covers Monolog\Processor\ProcessIdProcessor::__invoke + */ + public function testProcessor() + { + $processor = new ProcessIdProcessor(); + $record = $processor($this->getRecord()); + $this->assertArrayHasKey('process_id', $record['extra']); + $this->assertInternalType('int', $record['extra']['process_id']); + $this->assertGreaterThan(0, $record['extra']['process_id']); + } +}