From 091e09bbf17eac7965e9708c17cc46d0a64cafbb Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 10:13:41 -0500 Subject: [PATCH 01/24] OPS-981 | extract formatting of the logs while maintaining current format --- src/Process/Pool/LogFormatter.php | 34 +++++++++++ src/Process/Pool/LogFormatter.yml | 3 + src/Process/Pool/LogFormatterInterface.php | 15 +++++ src/Process/Pool/Logger.php | 66 ++++++++++++++++------ src/Process/Pool/Logger.yml | 3 +- src/Process/Pool/LoggerInterface.php | 7 ++- 6 files changed, 108 insertions(+), 20 deletions(-) create mode 100644 src/Process/Pool/LogFormatter.php create mode 100644 src/Process/Pool/LogFormatter.yml create mode 100644 src/Process/Pool/LogFormatterInterface.php diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php new file mode 100644 index 00000000..a5214fc8 --- /dev/null +++ b/src/Process/Pool/LogFormatter.php @@ -0,0 +1,34 @@ +getMessageParts()); + fwrite(STDOUT, $message . "\n"); + } + + public function getMessageParts() : array + { + if ($this->messageParts === null) { + throw new \LogicException('LogFormatter messageParts has not been set.'); + } + + return $this->messageParts; + } + + public function setMessageParts(array $messageParts) : LogFormatterInterface + { + $this->messageParts = $messageParts; + + return $this; + } + +} diff --git a/src/Process/Pool/LogFormatter.yml b/src/Process/Pool/LogFormatter.yml new file mode 100644 index 00000000..542829f7 --- /dev/null +++ b/src/Process/Pool/LogFormatter.yml @@ -0,0 +1,3 @@ +services: + neighborhoods.kojo.process.log_formatter: + class: Neighborhoods\Kojo\Process\LogFormatter diff --git a/src/Process/Pool/LogFormatterInterface.php b/src/Process/Pool/LogFormatterInterface.php new file mode 100644 index 00000000..bcac5778 --- /dev/null +++ b/src/Process/Pool/LogFormatterInterface.php @@ -0,0 +1,15 @@ +_createOrUpdate(ProcessInterface::class, $process); return $this; } - protected function _getProcess(): ProcessInterface + protected function _getProcess() : ProcessInterface { return $this->_read(ProcessInterface::class); } @@ -39,53 +42,80 @@ public function log($level, $message, array $context = []) $processId = (string)$this->_getProcess()->getProcessId(); $paddedProcessId = str_pad($processId, $processIdPadding, ' ', STR_PAD_LEFT); $typeCode = str_pad($this->_getProcess()->getPath(), $processPathPadding, ' '); - }else { + } else { $paddedProcessId = str_pad('', $processIdPadding, '?', STR_PAD_LEFT); $typeCode = str_pad('', $processPathPadding, '?'); } $level = str_pad($level, 12, ' '); $referenceTime = $this->_getTime()->getUnixReferenceTimeNow(); - $format = "%s | %s | %s | %s | %s\n"; - fwrite(STDOUT, sprintf($format, $referenceTime, $level, $paddedProcessId, $typeCode, $message)); + + $this->getLogFormatter()->setMessageParts([ + $referenceTime, + $level, + $paddedProcessId, + $typeCode, + $message, + ] + )->writePipes(); } return; } - protected function _isEnabled(): bool + protected function _isEnabled() : bool { return $this->_read(self::PROP_IS_ENABLED); } - public function setIsEnabled(bool $isEnabled): LoggerInterface + public function setIsEnabled(bool $isEnabled) : LoggerInterface { $this->_create(self::PROP_IS_ENABLED, $isEnabled); return $this; } - public function setProcessPathPadding(int $processPathPadding): LoggerInterface + public function setProcessPathPadding(int $processPathPadding) : LoggerInterface { $this->_create(self::PROP_PROCESS_PATH_PADDING, $processPathPadding); return $this; } - protected function _getProcessPathPadding(): int + protected function _getProcessPathPadding() : int { return $this->_read(self::PROP_PROCESS_PATH_PADDING); } - public function setProcessIdPadding(int $processIdPadding): LoggerInterface + public function setProcessIdPadding(int $processIdPadding) : LoggerInterface { $this->_create(self::PROP_PROCESS_ID_PADDING, $processIdPadding); return $this; } - protected function _getProcessIdPadding(): int + protected function _getProcessIdPadding() : int { return $this->_read(self::PROP_PROCESS_ID_PADDING); } -} \ No newline at end of file + + public function getLogFormatter() : LogFormatterInterface + { + if ($this->log_formatter === null) { + throw new \LogicException('Logger log_formatter has not been set.'); + } + + return $this->log_formatter; + } + + public function setLogFormatter($log_formatter) : LoggerInterface + { + if ($this->log_formatter !== null) { + throw new \LogicException('Logger log_formatter already set.'); + } + + $this->log_formatter = $log_formatter; + + return $this; + } +} diff --git a/src/Process/Pool/Logger.yml b/src/Process/Pool/Logger.yml index e55995fe..01c44c05 100644 --- a/src/Process/Pool/Logger.yml +++ b/src/Process/Pool/Logger.yml @@ -10,5 +10,6 @@ services: - [setTime, ['@neighborhoods.pylon.time']] - [setProcessIdPadding, ['%process.pool.logger.process_id_padding%']] - [setProcessPathPadding, ['%process.pool.logger.path_padding%']] + - [setLogFormatter, ['@neighborhoods.kojo.process.log_formatter']] process.pool.logger: - alias: neighborhoods.kojo.process.pool.logger \ No newline at end of file + alias: neighborhoods.kojo.process.pool.logger diff --git a/src/Process/Pool/LoggerInterface.php b/src/Process/Pool/LoggerInterface.php index f85fb4ae..f570d602 100644 --- a/src/Process/Pool/LoggerInterface.php +++ b/src/Process/Pool/LoggerInterface.php @@ -3,6 +3,7 @@ namespace Neighborhoods\Kojo\Process\Pool; +use Neighborhoods\Kojo\Process\LogFormatterInterface; use Neighborhoods\Kojo\ProcessInterface; use Psr\Log; @@ -15,4 +16,8 @@ public function setIsEnabled(bool $isEnabled): LoggerInterface; public function setProcessPathPadding(int $processPathPadding): LoggerInterface; public function setProcessIdPadding(int $processIdPadding): LoggerInterface; -} \ No newline at end of file + + public function getLogFormatter() : LogFormatterInterface; + + public function setLogFormatter($log_formatter) : LoggerInterface; +} From cd6cd7613a56590ac3c848ea5b6f07fd66540b09 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 10:26:07 -0500 Subject: [PATCH 02/24] OPS-981 | correct namespace to include Pool --- src/Process/Pool/LogFormatter.php | 2 +- src/Process/Pool/LogFormatter.yml | 2 +- src/Process/Pool/LogFormatterInterface.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index a5214fc8..e868ad4d 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Neighborhoods\Kojo\Process; +namespace Neighborhoods\Kojo\Process\Pool; class LogFormatter implements LogFormatterInterface { diff --git a/src/Process/Pool/LogFormatter.yml b/src/Process/Pool/LogFormatter.yml index 542829f7..c92c5b00 100644 --- a/src/Process/Pool/LogFormatter.yml +++ b/src/Process/Pool/LogFormatter.yml @@ -1,3 +1,3 @@ services: neighborhoods.kojo.process.log_formatter: - class: Neighborhoods\Kojo\Process\LogFormatter + class: Neighborhoods\Kojo\Process\Pool\LogFormatter diff --git a/src/Process/Pool/LogFormatterInterface.php b/src/Process/Pool/LogFormatterInterface.php index bcac5778..b241e648 100644 --- a/src/Process/Pool/LogFormatterInterface.php +++ b/src/Process/Pool/LogFormatterInterface.php @@ -1,7 +1,7 @@ Date: Mon, 25 Jun 2018 10:29:02 -0500 Subject: [PATCH 03/24] OPS-981 | remove outdated 'use' statement --- src/Process/Pool/Logger.php | 3 +-- src/Process/Pool/LoggerInterface.php | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index d0d61c11..a5fdcb06 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -3,7 +3,6 @@ namespace Neighborhoods\Kojo\Process\Pool; -use Neighborhoods\Kojo\Process\LogFormatterInterface; use Neighborhoods\Kojo\ProcessInterface; use Neighborhoods\Pylon\Data\Property\Defensive; use Neighborhoods\Pylon\Time; @@ -108,7 +107,7 @@ public function getLogFormatter() : LogFormatterInterface return $this->log_formatter; } - public function setLogFormatter($log_formatter) : LoggerInterface + public function setLogFormatter(LogFormatterInterface $log_formatter) : LoggerInterface { if ($this->log_formatter !== null) { throw new \LogicException('Logger log_formatter already set.'); diff --git a/src/Process/Pool/LoggerInterface.php b/src/Process/Pool/LoggerInterface.php index f570d602..e236689e 100644 --- a/src/Process/Pool/LoggerInterface.php +++ b/src/Process/Pool/LoggerInterface.php @@ -3,7 +3,6 @@ namespace Neighborhoods\Kojo\Process\Pool; -use Neighborhoods\Kojo\Process\LogFormatterInterface; use Neighborhoods\Kojo\ProcessInterface; use Psr\Log; @@ -19,5 +18,5 @@ public function setProcessIdPadding(int $processIdPadding): LoggerInterface; public function getLogFormatter() : LogFormatterInterface; - public function setLogFormatter($log_formatter) : LoggerInterface; + public function setLogFormatter(LogFormatterInterface $log_formatter) : LoggerInterface; } From 27683e01f8d89cc8f2c874dc887ba9caa2ae3468 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 10:56:23 -0500 Subject: [PATCH 04/24] OPS-981 | pass an associative array and allow json output --- src/Process/Pool/LogFormatter.php | 18 ++++++++++++++++-- src/Process/Pool/LogFormatterInterface.php | 2 ++ src/Process/Pool/Logger.php | 20 ++++++++++++-------- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index e868ad4d..af8e5ca9 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -11,8 +11,14 @@ class LogFormatter implements LogFormatterInterface public function writePipes() { - $message = implode(' | ', $this->getMessageParts()); - fwrite(STDOUT, $message . "\n"); + $message = implode(' | ', array_values($this->getMessageParts())); + $this->write($message); + } + + public function writeJson() + { + $message = json_encode($this->getMessageParts()); + $this->write($message); } public function getMessageParts() : array @@ -31,4 +37,12 @@ public function setMessageParts(array $messageParts) : LogFormatterInterface return $this; } + /** + * @param $message + */ + protected function write($message) : void + { + fwrite(STDOUT, $message . "\n"); + } + } diff --git a/src/Process/Pool/LogFormatterInterface.php b/src/Process/Pool/LogFormatterInterface.php index b241e648..96b1df28 100644 --- a/src/Process/Pool/LogFormatterInterface.php +++ b/src/Process/Pool/LogFormatterInterface.php @@ -12,4 +12,6 @@ public function writePipes(); public function getMessageParts() : array; public function setMessageParts(array $messageParts) : LogFormatterInterface; + + public function writeJson(); } diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index a5fdcb06..6357fcb3 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -49,14 +49,18 @@ public function log($level, $message, array $context = []) $level = str_pad($level, 12, ' '); $referenceTime = $this->_getTime()->getUnixReferenceTimeNow(); - $this->getLogFormatter()->setMessageParts([ - $referenceTime, - $level, - $paddedProcessId, - $typeCode, - $message, - ] - )->writePipes(); + $messageParts = [ + 'time' => $referenceTime, + 'level' => $level, + 'processId' => $paddedProcessId, + 'typeCode' => $typeCode, + 'message' => $message, + ]; + if ((int)$processId % 2 === 0) { + $this->getLogFormatter()->setMessageParts($messageParts)->writePipes(); + } else { + $this->getLogFormatter()->setMessageParts($messageParts)->writeJson(); + } } return; From 27fc262acfa2554a02f099758755fed51556345c Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 11:17:01 -0500 Subject: [PATCH 05/24] OPS-981 | write JSON only with no padding --- src/Process/Pool/Logger.php | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index 6357fcb3..eb16f5e8 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -46,21 +46,18 @@ public function log($level, $message, array $context = []) $typeCode = str_pad('', $processPathPadding, '?'); } - $level = str_pad($level, 12, ' '); +// $level = str_pad($level, 12, ' '); $referenceTime = $this->_getTime()->getUnixReferenceTimeNow(); $messageParts = [ 'time' => $referenceTime, 'level' => $level, - 'processId' => $paddedProcessId, - 'typeCode' => $typeCode, + 'processId' => $this->_getProcess()->getProcessId(), + 'typeCode' => $this->_getProcess()->getPath(), 'message' => $message, ]; - if ((int)$processId % 2 === 0) { - $this->getLogFormatter()->setMessageParts($messageParts)->writePipes(); - } else { - $this->getLogFormatter()->setMessageParts($messageParts)->writeJson(); - } + + $this->getLogFormatter()->setMessageParts($messageParts)->writeJson(); } return; From 39a10abff963daaa5ba3a4b99096060be2dfb902 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 11:49:10 -0500 Subject: [PATCH 06/24] OPS-981 | hard code the message padding values --- src/Process/Pool/LogFormatter.php | 17 ++++++++++++++++- src/Process/Pool/Logger.php | 11 +++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index af8e5ca9..928f1128 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -11,13 +11,28 @@ class LogFormatter implements LogFormatterInterface public function writePipes() { + $messageParts = [ + 'time' => $this->getMessageParts()['time'], + 'level' => $this->getMessageParts()['level'], + 'processId' => $this->getMessageParts()['processId'], + 'typeCode' => $this->getMessageParts()['typeCode'], + 'message' => $this->getMessageParts()['message'], + ]; + + $processIdPadding = 6; + $processPathPadding = 80; + + $messageParts['processId'] = str_pad($messageParts['processId'], $processIdPadding, ' ', STR_PAD_LEFT); + $messageParts['typeCode'] = str_pad($messageParts['typeCode'], $processPathPadding, ' '); + $messageParts['level'] = str_pad($messageParts['level'], 12, ' '); + $message = implode(' | ', array_values($this->getMessageParts())); $this->write($message); } public function writeJson() { - $message = json_encode($this->getMessageParts()); + $message = json_encode($this->getMessageParts()); $this->write($message); } diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index eb16f5e8..51191434 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -35,24 +35,19 @@ protected function _getProcess() : ProcessInterface public function log($level, $message, array $context = []) { if ($this->_isEnabled() === true) { - $processIdPadding = $this->_getProcessIdPadding(); - $processPathPadding = $this->_getProcessPathPadding(); + if ($this->_exists(ProcessInterface::class)) { $processId = (string)$this->_getProcess()->getProcessId(); - $paddedProcessId = str_pad($processId, $processIdPadding, ' ', STR_PAD_LEFT); - $typeCode = str_pad($this->_getProcess()->getPath(), $processPathPadding, ' '); } else { - $paddedProcessId = str_pad('', $processIdPadding, '?', STR_PAD_LEFT); - $typeCode = str_pad('', $processPathPadding, '?'); + $processId = '?'; } -// $level = str_pad($level, 12, ' '); $referenceTime = $this->_getTime()->getUnixReferenceTimeNow(); $messageParts = [ 'time' => $referenceTime, 'level' => $level, - 'processId' => $this->_getProcess()->getProcessId(), + 'processId' => $processId, 'typeCode' => $this->_getProcess()->getPath(), 'message' => $message, ]; From b4e44ec03370b372ed7895714a01cb229affd8db Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 11:51:52 -0500 Subject: [PATCH 07/24] OPS-981 | force to write pipes --- src/Process/Pool/Logger.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index 51191434..209d149a 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -52,7 +52,7 @@ public function log($level, $message, array $context = []) 'message' => $message, ]; - $this->getLogFormatter()->setMessageParts($messageParts)->writeJson(); + $this->getLogFormatter()->setMessageParts($messageParts)->writePipes(); } return; From 10d96ef2979b1fdea9981d95f80e1ef8a9b8c976 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 11:52:56 -0500 Subject: [PATCH 08/24] OPS-981 | use the padded message parts --- src/Process/Pool/LogFormatter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index 928f1128..660fda30 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -26,7 +26,7 @@ public function writePipes() $messageParts['typeCode'] = str_pad($messageParts['typeCode'], $processPathPadding, ' '); $messageParts['level'] = str_pad($messageParts['level'], 12, ' '); - $message = implode(' | ', array_values($this->getMessageParts())); + $message = implode(' | ', array_values($messageParts)); $this->write($message); } From 4a5c35756b4af3a1162a0d3dfb296cdf7e91717a Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 12:08:27 -0500 Subject: [PATCH 09/24] OPS-981 | move the writing back to the Logger --- src/Process/Pool/LogFormatter.php | 29 +++++++++++++++------- src/Process/Pool/LogFormatterInterface.php | 8 ++++-- src/Process/Pool/Logger.php | 3 ++- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index 660fda30..edd2f982 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -9,7 +9,10 @@ class LogFormatter implements LogFormatterInterface /** @var array */ protected $messageParts; - public function writePipes() + /** @var string */ + protected $formattedMessage; + + public function formatPipes() { $messageParts = [ 'time' => $this->getMessageParts()['time'], @@ -27,13 +30,13 @@ public function writePipes() $messageParts['level'] = str_pad($messageParts['level'], 12, ' '); $message = implode(' | ', array_values($messageParts)); - $this->write($message); + $this->setFormattedMessage($message); } - public function writeJson() + public function formatJson() { $message = json_encode($this->getMessageParts()); - $this->write($message); + $this->setFormattedMessage($message); } public function getMessageParts() : array @@ -52,12 +55,20 @@ public function setMessageParts(array $messageParts) : LogFormatterInterface return $this; } - /** - * @param $message - */ - protected function write($message) : void + public function getFormattedMessage() : string + { + if ($this->formattedMessage === null) { + throw new \LogicException('LogFormatter formattedMessage has not been set.'); + } + + return $this->formattedMessage; + } + + public function setFormattedMessage(string $formattedMessage) : LogFormatterInterface { - fwrite(STDOUT, $message . "\n"); + $this->formattedMessage = $formattedMessage; + + return $this; } } diff --git a/src/Process/Pool/LogFormatterInterface.php b/src/Process/Pool/LogFormatterInterface.php index 96b1df28..087c8cc2 100644 --- a/src/Process/Pool/LogFormatterInterface.php +++ b/src/Process/Pool/LogFormatterInterface.php @@ -7,11 +7,15 @@ interface LogFormatterInterface { - public function writePipes(); + public function formatPipes(); public function getMessageParts() : array; public function setMessageParts(array $messageParts) : LogFormatterInterface; - public function writeJson(); + public function formatJson(); + + public function getFormattedMessage() : string; + + public function setFormattedMessage(string $formattedMessage) : LogFormatterInterface; } diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index 209d149a..a8fb1584 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -52,7 +52,8 @@ public function log($level, $message, array $context = []) 'message' => $message, ]; - $this->getLogFormatter()->setMessageParts($messageParts)->writePipes(); + $this->getLogFormatter()->setMessageParts($messageParts)->formatPipes(); + fwrite(STDOUT, $this->getLogFormatter()->getFormattedMessage() . "\n"); } return; From a840610d40ecb94794110ac0983fd60a2169aca9 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 12:39:44 -0500 Subject: [PATCH 10/24] OPS-981 | use a generic format() method to toggle format type --- src/Process/Pool/LogFormatter.php | 57 ++++++++++++++++++++-- src/Process/Pool/LogFormatter.yml | 6 +++ src/Process/Pool/LogFormatterInterface.php | 12 +++-- src/Process/Pool/Logger.php | 30 +----------- src/Process/Pool/Logger.yml | 4 -- src/Process/Pool/LoggerInterface.php | 4 -- 6 files changed, 68 insertions(+), 45 deletions(-) diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index edd2f982..335da631 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -1,18 +1,37 @@ getMessageParts()['processId'] % 2 == 0){ + $this->formatJson(); + } else { + $this->formatPipes(); + } + + return $this; + } + + public function formatPipes() : LogFormatterInterface { $messageParts = [ 'time' => $this->getMessageParts()['time'], @@ -22,8 +41,8 @@ public function formatPipes() 'message' => $this->getMessageParts()['message'], ]; - $processIdPadding = 6; - $processPathPadding = 80; + $processIdPadding = $this->getProcessIdPadding(); + $processPathPadding = $this->getProcessPathPadding(); $messageParts['processId'] = str_pad($messageParts['processId'], $processIdPadding, ' ', STR_PAD_LEFT); $messageParts['typeCode'] = str_pad($messageParts['typeCode'], $processPathPadding, ' '); @@ -31,12 +50,16 @@ public function formatPipes() $message = implode(' | ', array_values($messageParts)); $this->setFormattedMessage($message); + + return $this; } - public function formatJson() + public function formatJson() : LogFormatterInterface { $message = json_encode($this->getMessageParts()); $this->setFormattedMessage($message); + + return $this; } public function getMessageParts() : array @@ -71,4 +94,28 @@ public function setFormattedMessage(string $formattedMessage) : LogFormatterInte return $this; } + public function setProcessPathPadding(int $processPathPadding) : LogFormatterInterface + { + $this->_create(self::PROP_PROCESS_PATH_PADDING, $processPathPadding); + + return $this; + } + + protected function getProcessPathPadding() : int + { + return $this->_read(self::PROP_PROCESS_PATH_PADDING); + } + + public function setProcessIdPadding(int $processIdPadding) : LogFormatterInterface + { + $this->_create(self::PROP_PROCESS_ID_PADDING, $processIdPadding); + + return $this; + } + + protected function getProcessIdPadding() : int + { + return $this->_read(self::PROP_PROCESS_ID_PADDING); + } + } diff --git a/src/Process/Pool/LogFormatter.yml b/src/Process/Pool/LogFormatter.yml index c92c5b00..44e476c9 100644 --- a/src/Process/Pool/LogFormatter.yml +++ b/src/Process/Pool/LogFormatter.yml @@ -1,3 +1,9 @@ +parameters: + process.pool.logger.process_id_padding: 6 + process.pool.logger.path_padding: 80 services: neighborhoods.kojo.process.log_formatter: class: Neighborhoods\Kojo\Process\Pool\LogFormatter + calls: + - [setProcessIdPadding, ['%process.pool.logger.process_id_padding%']] + - [setProcessPathPadding, ['%process.pool.logger.path_padding%']]] diff --git a/src/Process/Pool/LogFormatterInterface.php b/src/Process/Pool/LogFormatterInterface.php index 087c8cc2..ab6651f5 100644 --- a/src/Process/Pool/LogFormatterInterface.php +++ b/src/Process/Pool/LogFormatterInterface.php @@ -7,15 +7,21 @@ interface LogFormatterInterface { - public function formatPipes(); + public function format() : LogFormatterInterface; + + public function formatPipes() : LogFormatterInterface; + + public function formatJson() : LogFormatterInterface; public function getMessageParts() : array; public function setMessageParts(array $messageParts) : LogFormatterInterface; - public function formatJson(); - public function getFormattedMessage() : string; public function setFormattedMessage(string $formattedMessage) : LogFormatterInterface; + + public function setProcessPathPadding(int $processPathPadding) : LogFormatterInterface; + + public function setProcessIdPadding(int $processIdPadding) : LogFormatterInterface; } diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index a8fb1584..578d3893 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -12,11 +12,7 @@ class Logger extends Log\AbstractLogger implements LoggerInterface { use Time\AwareTrait; use Defensive\AwareTrait; - const PAD_PID = 6; - const PAD_PATH = 50; const PROP_IS_ENABLED = 'is_enabled'; - const PROP_PROCESS_PATH_PADDING = 'process_path_padding'; - const PROP_PROCESS_ID_PADDING = 'process_id_padding'; protected $log_formatter; @@ -52,7 +48,7 @@ public function log($level, $message, array $context = []) 'message' => $message, ]; - $this->getLogFormatter()->setMessageParts($messageParts)->formatPipes(); + $this->getLogFormatter()->setMessageParts($messageParts)->format(); fwrite(STDOUT, $this->getLogFormatter()->getFormattedMessage() . "\n"); } @@ -71,30 +67,6 @@ public function setIsEnabled(bool $isEnabled) : LoggerInterface return $this; } - public function setProcessPathPadding(int $processPathPadding) : LoggerInterface - { - $this->_create(self::PROP_PROCESS_PATH_PADDING, $processPathPadding); - - return $this; - } - - protected function _getProcessPathPadding() : int - { - return $this->_read(self::PROP_PROCESS_PATH_PADDING); - } - - public function setProcessIdPadding(int $processIdPadding) : LoggerInterface - { - $this->_create(self::PROP_PROCESS_ID_PADDING, $processIdPadding); - - return $this; - } - - protected function _getProcessIdPadding() : int - { - return $this->_read(self::PROP_PROCESS_ID_PADDING); - } - public function getLogFormatter() : LogFormatterInterface { if ($this->log_formatter === null) { diff --git a/src/Process/Pool/Logger.yml b/src/Process/Pool/Logger.yml index 01c44c05..3ae2dcf5 100644 --- a/src/Process/Pool/Logger.yml +++ b/src/Process/Pool/Logger.yml @@ -1,6 +1,4 @@ parameters: - process.pool.logger.process_id_padding: 6 - process.pool.logger.path_padding: 80 process.pool.logger.is_enabled: true services: neighborhoods.kojo.process.pool.logger: @@ -8,8 +6,6 @@ services: calls: - [setIsEnabled, ['%process.pool.logger.is_enabled%']] - [setTime, ['@neighborhoods.pylon.time']] - - [setProcessIdPadding, ['%process.pool.logger.process_id_padding%']] - - [setProcessPathPadding, ['%process.pool.logger.path_padding%']] - [setLogFormatter, ['@neighborhoods.kojo.process.log_formatter']] process.pool.logger: alias: neighborhoods.kojo.process.pool.logger diff --git a/src/Process/Pool/LoggerInterface.php b/src/Process/Pool/LoggerInterface.php index e236689e..47117afd 100644 --- a/src/Process/Pool/LoggerInterface.php +++ b/src/Process/Pool/LoggerInterface.php @@ -12,10 +12,6 @@ public function setProcess(ProcessInterface $process): LoggerInterface; public function setIsEnabled(bool $isEnabled): LoggerInterface; - public function setProcessPathPadding(int $processPathPadding): LoggerInterface; - - public function setProcessIdPadding(int $processIdPadding): LoggerInterface; - public function getLogFormatter() : LogFormatterInterface; public function setLogFormatter(LogFormatterInterface $log_formatter) : LoggerInterface; From a64f762db9117d696e176f07d594350ee530457e Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Mon, 25 Jun 2018 12:41:23 -0500 Subject: [PATCH 11/24] OPS-981 | remove extra closing bracket --- src/Process/Pool/LogFormatter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Process/Pool/LogFormatter.yml b/src/Process/Pool/LogFormatter.yml index 44e476c9..9c0d031a 100644 --- a/src/Process/Pool/LogFormatter.yml +++ b/src/Process/Pool/LogFormatter.yml @@ -6,4 +6,4 @@ services: class: Neighborhoods\Kojo\Process\Pool\LogFormatter calls: - [setProcessIdPadding, ['%process.pool.logger.process_id_padding%']] - - [setProcessPathPadding, ['%process.pool.logger.path_padding%']]] + - [setProcessPathPadding, ['%process.pool.logger.path_padding%']] From 38edeb59f41a01d2446b216ac82ce5e1c47bf29e Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Tue, 26 Jun 2018 08:56:44 -0500 Subject: [PATCH 12/24] OPS-981 | pass the log_format as an env variable --- src/Environment/Parameters.yml | 3 +- src/Process/Pool/LogFormatter.php | 56 ++++++++++++++++------ src/Process/Pool/LogFormatter.yml | 1 + src/Process/Pool/LogFormatterInterface.php | 2 + 4 files changed, 47 insertions(+), 15 deletions(-) diff --git a/src/Environment/Parameters.yml b/src/Environment/Parameters.yml index 0f2b3a14..d9fe967d 100644 --- a/src/Environment/Parameters.yml +++ b/src/Environment/Parameters.yml @@ -5,4 +5,5 @@ parameters: neighborhoods.kojo.environment.parameters.database_password: '' neighborhoods.kojo.environment.parameters.database_adapter: '' neighborhoods.kojo.environment.parameters.database_host: '' - neighborhoods.kojo.environment.parameters.database_name: '' \ No newline at end of file + neighborhoods.kojo.environment.parameters.database_name: '' + neighborhoods.kojo.environment.parameters.log_format: '' diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index 335da631..895749c1 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -13,6 +13,13 @@ class LogFormatter implements LogFormatterInterface const PAD_PATH = 50; const PROP_PROCESS_PATH_PADDING = 'process_path_padding'; const PROP_PROCESS_ID_PADDING = 'process_id_padding'; + const PROP_LOG_FORMAT = 'log_format'; + + const KEY_TIME = 'time'; + const KEY_LEVEL = 'level'; + const KEY_PROCESS_ID = 'processId'; + const KEY_TYPE_CODE = 'typeCode'; + const KEY_MESSAGE = 'message'; /** @var array */ protected $messageParts; @@ -20,12 +27,13 @@ class LogFormatter implements LogFormatterInterface /** @var string */ protected $formattedMessage; - public function format(): LogFormatterInterface + + public function format() : LogFormatterInterface { - if ((int)$this->getMessageParts()['processId'] % 2 == 0){ - $this->formatJson(); - } else { + if ($this->hasLogFormat() && $this->getLogFormat() === 'pipes'){ $this->formatPipes(); + } else { + $this->formatJson(); } return $this; @@ -33,22 +41,26 @@ public function format(): LogFormatterInterface public function formatPipes() : LogFormatterInterface { - $messageParts = [ - 'time' => $this->getMessageParts()['time'], - 'level' => $this->getMessageParts()['level'], - 'processId' => $this->getMessageParts()['processId'], - 'typeCode' => $this->getMessageParts()['typeCode'], - 'message' => $this->getMessageParts()['message'], + $paddedMessage = [ + self::KEY_TIME => $this->getMessageParts()[self::KEY_TIME], + self::KEY_LEVEL => $this->getMessageParts()[self::KEY_LEVEL], + self::KEY_PROCESS_ID => $this->getMessageParts()[self::KEY_PROCESS_ID], + self::KEY_TYPE_CODE => $this->getMessageParts()[self::KEY_TYPE_CODE], + self::KEY_MESSAGE => $this->getMessageParts()[self::KEY_MESSAGE], ]; $processIdPadding = $this->getProcessIdPadding(); $processPathPadding = $this->getProcessPathPadding(); - $messageParts['processId'] = str_pad($messageParts['processId'], $processIdPadding, ' ', STR_PAD_LEFT); - $messageParts['typeCode'] = str_pad($messageParts['typeCode'], $processPathPadding, ' '); - $messageParts['level'] = str_pad($messageParts['level'], 12, ' '); + $paddedMessage[self::KEY_PROCESS_ID] = str_pad($paddedMessage[self::KEY_PROCESS_ID], + $processIdPadding, + ' ', + STR_PAD_LEFT + ); + $paddedMessage[self::KEY_TYPE_CODE] = str_pad($paddedMessage[self::KEY_TYPE_CODE], $processPathPadding, ' '); + $paddedMessage[self::KEY_LEVEL] = str_pad($paddedMessage[self::KEY_LEVEL], 12, ' '); - $message = implode(' | ', array_values($messageParts)); + $message = implode(' | ', array_values($paddedMessage)); $this->setFormattedMessage($message); return $this; @@ -118,4 +130,20 @@ protected function getProcessIdPadding() : int return $this->_read(self::PROP_PROCESS_ID_PADDING); } + public function setLogFormat(string $logFormat) + { + $this->_create(self::PROP_LOG_FORMAT, $logFormat); + + return $this; + } + + protected function getLogFormat() : string + { + return $this->_read(self::PROP_LOG_FORMAT); + } + + protected function hasLogFormat() : bool + { + return $this->_exists(self::PROP_LOG_FORMAT); + } } diff --git a/src/Process/Pool/LogFormatter.yml b/src/Process/Pool/LogFormatter.yml index 9c0d031a..218fe3e4 100644 --- a/src/Process/Pool/LogFormatter.yml +++ b/src/Process/Pool/LogFormatter.yml @@ -7,3 +7,4 @@ services: calls: - [setProcessIdPadding, ['%process.pool.logger.process_id_padding%']] - [setProcessPathPadding, ['%process.pool.logger.path_padding%']] + - [setLogFormat, ['%neighborhoods.kojo.environment.parameters.log_format%']] diff --git a/src/Process/Pool/LogFormatterInterface.php b/src/Process/Pool/LogFormatterInterface.php index ab6651f5..e0c843d8 100644 --- a/src/Process/Pool/LogFormatterInterface.php +++ b/src/Process/Pool/LogFormatterInterface.php @@ -24,4 +24,6 @@ public function setFormattedMessage(string $formattedMessage) : LogFormatterInte public function setProcessPathPadding(int $processPathPadding) : LogFormatterInterface; public function setProcessIdPadding(int $processIdPadding) : LogFormatterInterface; + + public function setLogFormat(string $logFormat); } From 33800e850b159c5c04d875704a841e2c0e28a0d6 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Tue, 26 Jun 2018 09:09:04 -0500 Subject: [PATCH 13/24] OPS-981 | remove type strings --- src/Process/Pool/LogFormatter.php | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index 895749c1..6dbb3c30 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -21,16 +21,13 @@ class LogFormatter implements LogFormatterInterface const KEY_TYPE_CODE = 'typeCode'; const KEY_MESSAGE = 'message'; - /** @var array */ protected $messageParts; - - /** @var string */ protected $formattedMessage; public function format() : LogFormatterInterface { - if ($this->hasLogFormat() && $this->getLogFormat() === 'pipes'){ + if ($this->hasLogFormat() && $this->getLogFormat() === 'pipes') { $this->formatPipes(); } else { $this->formatJson(); @@ -53,9 +50,9 @@ public function formatPipes() : LogFormatterInterface $processPathPadding = $this->getProcessPathPadding(); $paddedMessage[self::KEY_PROCESS_ID] = str_pad($paddedMessage[self::KEY_PROCESS_ID], - $processIdPadding, - ' ', - STR_PAD_LEFT + $processIdPadding, + ' ', + STR_PAD_LEFT ); $paddedMessage[self::KEY_TYPE_CODE] = str_pad($paddedMessage[self::KEY_TYPE_CODE], $processPathPadding, ' '); $paddedMessage[self::KEY_LEVEL] = str_pad($paddedMessage[self::KEY_LEVEL], 12, ' '); From 60ad29cf140891e332115e455460e7f2c0396ae9 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Tue, 26 Jun 2018 09:15:14 -0500 Subject: [PATCH 14/24] OPS-981 | add log_format_types --- src/Process/Pool/LogFormatter.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Process/Pool/LogFormatter.php b/src/Process/Pool/LogFormatter.php index 6dbb3c30..5818e24d 100644 --- a/src/Process/Pool/LogFormatter.php +++ b/src/Process/Pool/LogFormatter.php @@ -21,13 +21,15 @@ class LogFormatter implements LogFormatterInterface const KEY_TYPE_CODE = 'typeCode'; const KEY_MESSAGE = 'message'; + const LOG_FORMAT_PIPES = 'pipes'; + const LOG_FORMAT_JSON = 'json'; + protected $messageParts; protected $formattedMessage; - public function format() : LogFormatterInterface { - if ($this->hasLogFormat() && $this->getLogFormat() === 'pipes') { + if ($this->hasLogFormat() && $this->getLogFormat() === self::LOG_FORMAT_PIPES) { $this->formatPipes(); } else { $this->formatJson(); From bedbf1742028fc534ab6801488e048050b837d16 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Tue, 26 Jun 2018 09:16:48 -0500 Subject: [PATCH 15/24] OPS-981 | define strict_types=1 --- src/Process/Pool/LogFormatterInterface.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Process/Pool/LogFormatterInterface.php b/src/Process/Pool/LogFormatterInterface.php index e0c843d8..69f61a16 100644 --- a/src/Process/Pool/LogFormatterInterface.php +++ b/src/Process/Pool/LogFormatterInterface.php @@ -1,5 +1,6 @@ Date: Wed, 27 Jun 2018 10:58:57 -0500 Subject: [PATCH 16/24] OPS-981 | We have a Logger Formatter not a logFormatter on our hands --- src/Process/Pool/LogFormatterInterface.php | 30 ------------------- .../Formatter.php} | 22 +++++++------- .../Formatter.yml} | 2 +- .../Pool/Logger/FormatterInterface.php | 30 +++++++++++++++++++ 4 files changed, 42 insertions(+), 42 deletions(-) delete mode 100644 src/Process/Pool/LogFormatterInterface.php rename src/Process/Pool/{LogFormatter.php => Logger/Formatter.php} (86%) rename src/Process/Pool/{LogFormatter.yml => Logger/Formatter.yml} (86%) create mode 100644 src/Process/Pool/Logger/FormatterInterface.php diff --git a/src/Process/Pool/LogFormatterInterface.php b/src/Process/Pool/LogFormatterInterface.php deleted file mode 100644 index 69f61a16..00000000 --- a/src/Process/Pool/LogFormatterInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -hasLogFormat() && $this->getLogFormat() === self::LOG_FORMAT_PIPES) { $this->formatPipes(); @@ -38,7 +38,7 @@ public function format() : LogFormatterInterface return $this; } - public function formatPipes() : LogFormatterInterface + public function formatPipes() : FormatterInterface { $paddedMessage = [ self::KEY_TIME => $this->getMessageParts()[self::KEY_TIME], @@ -65,7 +65,7 @@ public function formatPipes() : LogFormatterInterface return $this; } - public function formatJson() : LogFormatterInterface + public function formatJson() : FormatterInterface { $message = json_encode($this->getMessageParts()); $this->setFormattedMessage($message); @@ -76,13 +76,13 @@ public function formatJson() : LogFormatterInterface public function getMessageParts() : array { if ($this->messageParts === null) { - throw new \LogicException('LogFormatter messageParts has not been set.'); + throw new \LogicException('Formatter messageParts has not been set.'); } return $this->messageParts; } - public function setMessageParts(array $messageParts) : LogFormatterInterface + public function setMessageParts(array $messageParts) : FormatterInterface { $this->messageParts = $messageParts; @@ -92,20 +92,20 @@ public function setMessageParts(array $messageParts) : LogFormatterInterface public function getFormattedMessage() : string { if ($this->formattedMessage === null) { - throw new \LogicException('LogFormatter formattedMessage has not been set.'); + throw new \LogicException('Formatter formattedMessage has not been set.'); } return $this->formattedMessage; } - public function setFormattedMessage(string $formattedMessage) : LogFormatterInterface + public function setFormattedMessage(string $formattedMessage) : FormatterInterface { $this->formattedMessage = $formattedMessage; return $this; } - public function setProcessPathPadding(int $processPathPadding) : LogFormatterInterface + public function setProcessPathPadding(int $processPathPadding) : FormatterInterface { $this->_create(self::PROP_PROCESS_PATH_PADDING, $processPathPadding); @@ -117,7 +117,7 @@ protected function getProcessPathPadding() : int return $this->_read(self::PROP_PROCESS_PATH_PADDING); } - public function setProcessIdPadding(int $processIdPadding) : LogFormatterInterface + public function setProcessIdPadding(int $processIdPadding) : FormatterInterface { $this->_create(self::PROP_PROCESS_ID_PADDING, $processIdPadding); diff --git a/src/Process/Pool/LogFormatter.yml b/src/Process/Pool/Logger/Formatter.yml similarity index 86% rename from src/Process/Pool/LogFormatter.yml rename to src/Process/Pool/Logger/Formatter.yml index 218fe3e4..11cb45c9 100644 --- a/src/Process/Pool/LogFormatter.yml +++ b/src/Process/Pool/Logger/Formatter.yml @@ -3,7 +3,7 @@ parameters: process.pool.logger.path_padding: 80 services: neighborhoods.kojo.process.log_formatter: - class: Neighborhoods\Kojo\Process\Pool\LogFormatter + class: Neighborhoods\Kojo\Process\Pool\Logger\Formatter calls: - [setProcessIdPadding, ['%process.pool.logger.process_id_padding%']] - [setProcessPathPadding, ['%process.pool.logger.path_padding%']] diff --git a/src/Process/Pool/Logger/FormatterInterface.php b/src/Process/Pool/Logger/FormatterInterface.php new file mode 100644 index 00000000..0e3293b2 --- /dev/null +++ b/src/Process/Pool/Logger/FormatterInterface.php @@ -0,0 +1,30 @@ + Date: Wed, 27 Jun 2018 17:43:45 -0500 Subject: [PATCH 17/24] OPS-981 | refactor where formatter is called --- src/Process/Pool/Logger.php | 5 +++-- src/Process/Pool/LoggerInterface.php | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index 578d3893..581a1ad8 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -3,6 +3,7 @@ namespace Neighborhoods\Kojo\Process\Pool; +use Neighborhoods\Kojo\Process\Pool\Logger\FormatterInterface; use Neighborhoods\Kojo\ProcessInterface; use Neighborhoods\Pylon\Data\Property\Defensive; use Neighborhoods\Pylon\Time; @@ -67,7 +68,7 @@ public function setIsEnabled(bool $isEnabled) : LoggerInterface return $this; } - public function getLogFormatter() : LogFormatterInterface + public function getLogFormatter() : FormatterInterface { if ($this->log_formatter === null) { throw new \LogicException('Logger log_formatter has not been set.'); @@ -76,7 +77,7 @@ public function getLogFormatter() : LogFormatterInterface return $this->log_formatter; } - public function setLogFormatter(LogFormatterInterface $log_formatter) : LoggerInterface + public function setLogFormatter(FormatterInterface $log_formatter) : LoggerInterface { if ($this->log_formatter !== null) { throw new \LogicException('Logger log_formatter already set.'); diff --git a/src/Process/Pool/LoggerInterface.php b/src/Process/Pool/LoggerInterface.php index 47117afd..76157bcc 100644 --- a/src/Process/Pool/LoggerInterface.php +++ b/src/Process/Pool/LoggerInterface.php @@ -3,6 +3,7 @@ namespace Neighborhoods\Kojo\Process\Pool; +use Neighborhoods\Kojo\Process\Pool\Logger\FormatterInterface; use Neighborhoods\Kojo\ProcessInterface; use Psr\Log; @@ -12,7 +13,7 @@ public function setProcess(ProcessInterface $process): LoggerInterface; public function setIsEnabled(bool $isEnabled): LoggerInterface; - public function getLogFormatter() : LogFormatterInterface; + public function getLogFormatter() : FormatterInterface; - public function setLogFormatter(LogFormatterInterface $log_formatter) : LoggerInterface; + public function setLogFormatter(FormatterInterface $log_formatter) : LoggerInterface; } From 8cf735a9a5c4622d5a9c3997241f7eae00db6994 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Wed, 27 Jun 2018 17:50:36 -0500 Subject: [PATCH 18/24] OPS-981 | namespace the params in the formatter --- src/Process/Pool/Logger/Formatter.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Process/Pool/Logger/Formatter.yml b/src/Process/Pool/Logger/Formatter.yml index 11cb45c9..69c60cfa 100644 --- a/src/Process/Pool/Logger/Formatter.yml +++ b/src/Process/Pool/Logger/Formatter.yml @@ -1,10 +1,11 @@ parameters: - process.pool.logger.process_id_padding: 6 - process.pool.logger.path_padding: 80 + process.pool.logger.formatter.process_id_padding: 6 + process.pool.logger.formatter.path_padding: 80 + process.pool.logger.formatter.log_format: 'json' services: neighborhoods.kojo.process.log_formatter: class: Neighborhoods\Kojo\Process\Pool\Logger\Formatter calls: - - [setProcessIdPadding, ['%process.pool.logger.process_id_padding%']] - - [setProcessPathPadding, ['%process.pool.logger.path_padding%']] - - [setLogFormat, ['%neighborhoods.kojo.environment.parameters.log_format%']] + - [setProcessIdPadding, ['%process.pool.logger.formatter.process_id_padding%']] + - [setProcessPathPadding, ['%process.pool.logger.formatter.path_padding%']] + - [setLogFormat, ['%process.pool.logger.formatter.log_format%']] From b94cb2ff48d5bc62ddc07dc22f24fd4a6db56626 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Thu, 28 Jun 2018 12:26:15 -0500 Subject: [PATCH 19/24] OPS-981 | create a Logger Message DAO --- src/Process/Pool/Logger.php | 16 +-- src/Process/Pool/Logger.yml | 1 + src/Process/Pool/Logger/Formatter.php | 46 +++--- .../Pool/Logger/FormatterInterface.php | 4 +- src/Process/Pool/Logger/Message.php | 131 ++++++++++++++++++ src/Process/Pool/Logger/Message.yml | 3 + .../Pool/Logger/Message/AwareTrait.php | 46 ++++++ src/Process/Pool/Logger/Message/Factory.php | 19 +++ src/Process/Pool/Logger/Message/Factory.yml | 5 + .../Logger/Message/Factory/AwareTrait.php | 46 ++++++ .../Pool/Logger/Message/FactoryInterface.php | 12 ++ src/Process/Pool/Logger/MessageInterface.php | 29 ++++ 12 files changed, 320 insertions(+), 38 deletions(-) create mode 100644 src/Process/Pool/Logger/Message.php create mode 100644 src/Process/Pool/Logger/Message.yml create mode 100644 src/Process/Pool/Logger/Message/AwareTrait.php create mode 100644 src/Process/Pool/Logger/Message/Factory.php create mode 100644 src/Process/Pool/Logger/Message/Factory.yml create mode 100644 src/Process/Pool/Logger/Message/Factory/AwareTrait.php create mode 100644 src/Process/Pool/Logger/Message/FactoryInterface.php create mode 100644 src/Process/Pool/Logger/MessageInterface.php diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index 581a1ad8..4db0e8df 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -12,6 +12,7 @@ class Logger extends Log\AbstractLogger implements LoggerInterface { use Time\AwareTrait; + use Logger\Message\Factory\AwareTrait; use Defensive\AwareTrait; const PROP_IS_ENABLED = 'is_enabled'; @@ -41,15 +42,14 @@ public function log($level, $message, array $context = []) $referenceTime = $this->_getTime()->getUnixReferenceTimeNow(); - $messageParts = [ - 'time' => $referenceTime, - 'level' => $level, - 'processId' => $processId, - 'typeCode' => $this->_getProcess()->getPath(), - 'message' => $message, - ]; + $logMessage = $this->getProcessPoolLoggerMessageFactory()->create(); + $logMessage->setTime($referenceTime); + $logMessage->setLevel($level); + $logMessage->setProcessId($processId); + $logMessage->setTypeCode($this->_getProcess()->getPath()); + $logMessage->setMessage($message); - $this->getLogFormatter()->setMessageParts($messageParts)->format(); + $this->getLogFormatter()->setMessage($logMessage)->format(); fwrite(STDOUT, $this->getLogFormatter()->getFormattedMessage() . "\n"); } diff --git a/src/Process/Pool/Logger.yml b/src/Process/Pool/Logger.yml index 3ae2dcf5..0842ab8a 100644 --- a/src/Process/Pool/Logger.yml +++ b/src/Process/Pool/Logger.yml @@ -7,5 +7,6 @@ services: - [setIsEnabled, ['%process.pool.logger.is_enabled%']] - [setTime, ['@neighborhoods.pylon.time']] - [setLogFormatter, ['@neighborhoods.kojo.process.log_formatter']] + - [setProcessPoolLoggerMessageFactory, ['@neighborhoods.kojo.process.pool.logger.message.factory']] process.pool.logger: alias: neighborhoods.kojo.process.pool.logger diff --git a/src/Process/Pool/Logger/Formatter.php b/src/Process/Pool/Logger/Formatter.php index 52823074..7f526959 100644 --- a/src/Process/Pool/Logger/Formatter.php +++ b/src/Process/Pool/Logger/Formatter.php @@ -24,7 +24,7 @@ class Formatter implements FormatterInterface const LOG_FORMAT_PIPES = 'pipes'; const LOG_FORMAT_JSON = 'json'; - protected $messageParts; + protected $message; protected $formattedMessage; public function format() : FormatterInterface @@ -40,51 +40,41 @@ public function format() : FormatterInterface public function formatPipes() : FormatterInterface { - $paddedMessage = [ - self::KEY_TIME => $this->getMessageParts()[self::KEY_TIME], - self::KEY_LEVEL => $this->getMessageParts()[self::KEY_LEVEL], - self::KEY_PROCESS_ID => $this->getMessageParts()[self::KEY_PROCESS_ID], - self::KEY_TYPE_CODE => $this->getMessageParts()[self::KEY_TYPE_CODE], - self::KEY_MESSAGE => $this->getMessageParts()[self::KEY_MESSAGE], - ]; - - $processIdPadding = $this->getProcessIdPadding(); - $processPathPadding = $this->getProcessPathPadding(); - - $paddedMessage[self::KEY_PROCESS_ID] = str_pad($paddedMessage[self::KEY_PROCESS_ID], - $processIdPadding, - ' ', - STR_PAD_LEFT - ); - $paddedMessage[self::KEY_TYPE_CODE] = str_pad($paddedMessage[self::KEY_TYPE_CODE], $processPathPadding, ' '); - $paddedMessage[self::KEY_LEVEL] = str_pad($paddedMessage[self::KEY_LEVEL], 12, ' '); - - $message = implode(' | ', array_values($paddedMessage)); - $this->setFormattedMessage($message); + $message = $this->getMessage(); + + $processIdPaddingLength = $this->getProcessIdPadding(); + $processPathPaddingLength = $this->getProcessPathPadding(); + + $processID = str_pad($message->getProcessId(), $processIdPaddingLength, ' ', STR_PAD_LEFT); + $typeCode = str_pad($message->getTypeCode(), $processPathPaddingLength, ' '); + $level = str_pad($message->getLevel(), 12, ' '); + + $pipeDelimitedMessage = implode(' | ', [$message->getTime(), $level, $processID, $typeCode]); + $this->setFormattedMessage($pipeDelimitedMessage); return $this; } public function formatJson() : FormatterInterface { - $message = json_encode($this->getMessageParts()); + $message = json_encode($this->getMessage()); $this->setFormattedMessage($message); return $this; } - public function getMessageParts() : array + public function getMessage() : MessageInterface { - if ($this->messageParts === null) { + if ($this->message === null) { throw new \LogicException('Formatter messageParts has not been set.'); } - return $this->messageParts; + return $this->message; } - public function setMessageParts(array $messageParts) : FormatterInterface + public function setMessage(MessageInterface $message) : FormatterInterface { - $this->messageParts = $messageParts; + $this->message = $message; return $this; } diff --git a/src/Process/Pool/Logger/FormatterInterface.php b/src/Process/Pool/Logger/FormatterInterface.php index 0e3293b2..888f99a6 100644 --- a/src/Process/Pool/Logger/FormatterInterface.php +++ b/src/Process/Pool/Logger/FormatterInterface.php @@ -14,9 +14,9 @@ public function formatPipes() : FormatterInterface; public function formatJson() : FormatterInterface; - public function getMessageParts() : array; + public function getMessage() : MessageInterface; - public function setMessageParts(array $messageParts) : FormatterInterface; + public function setMessage(MessageInterface $message) : FormatterInterface; public function getFormattedMessage() : string; diff --git a/src/Process/Pool/Logger/Message.php b/src/Process/Pool/Logger/Message.php new file mode 100644 index 00000000..066c862b --- /dev/null +++ b/src/Process/Pool/Logger/Message.php @@ -0,0 +1,131 @@ + $this->getTime(), + self::KEY_LEVEL => $this->getLevel(), + self::KEY_PROCESS_ID => $this->getProcessId(), + self::KEY_TYPE_CODE => $this->getTypeCode(), + self::KEY_MESSAGE => $this->getMessage(), + ]; + } + + public function getTime() : string + { + if ($this->time === null) { + throw new \LogicException('Message ' . self::KEY_TIME . ' has not been set.'); + } + + return $this->time; + } + + public function setTime(string $time) : MessageInterface + { + if ($this->time !== null) { + throw new \LogicException('Message ' . self::KEY_TIME . ' already set.'); + } + + $this->time = $time; + + return $this; + } + + public function getLevel() : string + { + if ($this->level === null) { + throw new \LogicException('Message ' . self::KEY_LEVEL . ' has not been set.'); + } + + return $this->level; + } + + public function setLevel(string $level) : MessageInterface + { + if ($this->level !== null) { + throw new \LogicException('Message ' . self::KEY_LEVEL . ' already set.'); + } + + $this->level = $level; + + return $this; + } + + public function getProcessId() : string + { + if ($this->process_id === null) { + throw new \LogicException('Message ' . self::KEY_PROCESS_ID . ' has not been set.'); + } + + return $this->process_id; + } + + public function setProcessId(string $process_id) : MessageInterface + { + if ($this->process_id !== null) { + throw new \LogicException('Message ' . self::KEY_PROCESS_ID . ' already set.'); + } + + $this->process_id = $process_id; + + return $this; + } + + public function getTypeCode() : string + { + if ($this->type_code === null) { + throw new \LogicException('Message ' . self::KEY_TYPE_CODE . ' has not been set.'); + } + + return $this->type_code; + } + + public function setTypeCode(string $type_code) : MessageInterface + { + if ($this->type_code !== null) { + throw new \LogicException('Message ' . self::KEY_TYPE_CODE . ' already set.'); + } + + $this->type_code = $type_code; + + return $this; + } + + public function getMessage() : string + { + if ($this->message === null) { + throw new \LogicException('Message ' . self::KEY_MESSAGE . ' has not been set.'); + } + + return $this->message; + } + + public function setMessage(string $message) : MessageInterface + { + if ($this->message !== null) { + throw new \LogicException('Message ' . self::KEY_MESSAGE . ' already set.'); + } + + $this->message = $message; + + return $this; + } +} diff --git a/src/Process/Pool/Logger/Message.yml b/src/Process/Pool/Logger/Message.yml new file mode 100644 index 00000000..8e84b2d4 --- /dev/null +++ b/src/Process/Pool/Logger/Message.yml @@ -0,0 +1,3 @@ +services: + neighborhoods.kojo.process.pool.logger.message: + class: Neighborhoods\Kojo\Process\Pool\Logger\Message diff --git a/src/Process/Pool/Logger/Message/AwareTrait.php b/src/Process/Pool/Logger/Message/AwareTrait.php new file mode 100644 index 00000000..057ab993 --- /dev/null +++ b/src/Process/Pool/Logger/Message/AwareTrait.php @@ -0,0 +1,46 @@ +hasProcessPoolLoggerMessage(), + new \LogicException('NeighborhoodsKojoProcessPoolLoggerMessage is already set.') + ); + $this->NeighborhoodsKojoProcessPoolLoggerMessage = $processPoolLoggerMessage; + + return $this; + } + + protected function getProcessPoolLoggerMessage() : MessageInterface + { + assert($this->hasProcessPoolLoggerMessage(), + new \LogicException('NeighborhoodsKojoProcessPoolLoggerMessage is not set.') + ); + + return $this->NeighborhoodsKojoProcessPoolLoggerMessage; + } + + protected function hasProcessPoolLoggerMessage() : bool + { + return isset($this->NeighborhoodsKojoProcessPoolLoggerMessage); + } + + protected function unsetProcessPoolLoggerMessage() : self + { + assert($this->hasProcessPoolLoggerMessage(), + new \LogicException('NeighborhoodsKojoProcessPoolLoggerMessage is not set.') + ); + unset($this->NeighborhoodsKojoProcessPoolLoggerMessage); + + return $this; + } +} diff --git a/src/Process/Pool/Logger/Message/Factory.php b/src/Process/Pool/Logger/Message/Factory.php new file mode 100644 index 00000000..a28b7809 --- /dev/null +++ b/src/Process/Pool/Logger/Message/Factory.php @@ -0,0 +1,19 @@ +getProcessPoolLoggerMessage(); + } +} diff --git a/src/Process/Pool/Logger/Message/Factory.yml b/src/Process/Pool/Logger/Message/Factory.yml new file mode 100644 index 00000000..ffcba4ed --- /dev/null +++ b/src/Process/Pool/Logger/Message/Factory.yml @@ -0,0 +1,5 @@ +services: + neighborhoods.kojo.process.pool.logger.message.factory: + class: Neighborhoods\Kojo\Process\Pool\Logger\Message\Factory + calls: + - [setProcessPoolLoggerMessage, ['@neighborhoods.kojo.process.pool.logger.message']] diff --git a/src/Process/Pool/Logger/Message/Factory/AwareTrait.php b/src/Process/Pool/Logger/Message/Factory/AwareTrait.php new file mode 100644 index 00000000..e30a3141 --- /dev/null +++ b/src/Process/Pool/Logger/Message/Factory/AwareTrait.php @@ -0,0 +1,46 @@ +hasProcessPoolLoggerMessageFactory(), + new \LogicException('NeighborhoodsKojoProcessPoolLoggerMessageFactory is already set.') + ); + $this->NeighborhoodsKojoProcessPoolLoggerMessageFactory = $processPoolLoggerMessageFactory; + + return $this; + } + + protected function getProcessPoolLoggerMessageFactory() : FactoryInterface + { + assert($this->hasProcessPoolLoggerMessageFactory(), + new \LogicException('NeighborhoodsKojoProcessPoolLoggerMessageFactory is not set.') + ); + + return $this->NeighborhoodsKojoProcessPoolLoggerMessageFactory; + } + + protected function hasProcessPoolLoggerMessageFactory() : bool + { + return isset($this->NeighborhoodsKojoProcessPoolLoggerMessageFactory); + } + + protected function unsetProcessPoolLoggerMessageFactory() : self + { + assert($this->hasProcessPoolLoggerMessageFactory(), + new \LogicException('NeighborhoodsKojoProcessPoolLoggerMessageFactory is not set.') + ); + unset($this->NeighborhoodsKojoProcessPoolLoggerMessageFactory); + + return $this; + } +} diff --git a/src/Process/Pool/Logger/Message/FactoryInterface.php b/src/Process/Pool/Logger/Message/FactoryInterface.php new file mode 100644 index 00000000..6482630e --- /dev/null +++ b/src/Process/Pool/Logger/Message/FactoryInterface.php @@ -0,0 +1,12 @@ + Date: Thu, 28 Jun 2018 13:34:35 -0500 Subject: [PATCH 20/24] OPS-981 | pass the message contents to the pipes formatted message --- src/Process/Pool/Logger/Formatter.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Process/Pool/Logger/Formatter.php b/src/Process/Pool/Logger/Formatter.php index 7f526959..414ed1c8 100644 --- a/src/Process/Pool/Logger/Formatter.php +++ b/src/Process/Pool/Logger/Formatter.php @@ -40,16 +40,16 @@ public function format() : FormatterInterface public function formatPipes() : FormatterInterface { - $message = $this->getMessage(); + $logMessage = $this->getMessage(); $processIdPaddingLength = $this->getProcessIdPadding(); $processPathPaddingLength = $this->getProcessPathPadding(); - $processID = str_pad($message->getProcessId(), $processIdPaddingLength, ' ', STR_PAD_LEFT); - $typeCode = str_pad($message->getTypeCode(), $processPathPaddingLength, ' '); - $level = str_pad($message->getLevel(), 12, ' '); + $processID = str_pad($logMessage->getProcessId(), $processIdPaddingLength, ' ', STR_PAD_LEFT); + $typeCode = str_pad($logMessage->getTypeCode(), $processPathPaddingLength, ' '); + $level = str_pad($logMessage->getLevel(), 12, ' '); - $pipeDelimitedMessage = implode(' | ', [$message->getTime(), $level, $processID, $typeCode]); + $pipeDelimitedMessage = implode(' | ', [$logMessage->getTime(), $level, $processID, $typeCode, $logMessage->getMessage()]); $this->setFormattedMessage($pipeDelimitedMessage); return $this; @@ -57,8 +57,8 @@ public function formatPipes() : FormatterInterface public function formatJson() : FormatterInterface { - $message = json_encode($this->getMessage()); - $this->setFormattedMessage($message); + $logMessage = json_encode($this->getMessage()); + $this->setFormattedMessage($logMessage); return $this; } From 9e4df4883b6f1846916b996fbcee5c855ac96631 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Thu, 28 Jun 2018 14:25:26 -0500 Subject: [PATCH 21/24] OPS-981 | get and return formatted message --- src/Process/Pool/Logger.php | 3 +-- src/Process/Pool/Logger/Formatter.php | 24 +++++++------------ .../Pool/Logger/FormatterInterface.php | 15 +----------- 3 files changed, 11 insertions(+), 31 deletions(-) diff --git a/src/Process/Pool/Logger.php b/src/Process/Pool/Logger.php index 4db0e8df..53b43628 100644 --- a/src/Process/Pool/Logger.php +++ b/src/Process/Pool/Logger.php @@ -49,8 +49,7 @@ public function log($level, $message, array $context = []) $logMessage->setTypeCode($this->_getProcess()->getPath()); $logMessage->setMessage($message); - $this->getLogFormatter()->setMessage($logMessage)->format(); - fwrite(STDOUT, $this->getLogFormatter()->getFormattedMessage() . "\n"); + fwrite(STDOUT, $this->getLogFormatter()->getFormattedMessage($logMessage) . "\n"); } return; diff --git a/src/Process/Pool/Logger/Formatter.php b/src/Process/Pool/Logger/Formatter.php index 414ed1c8..c95a39d4 100644 --- a/src/Process/Pool/Logger/Formatter.php +++ b/src/Process/Pool/Logger/Formatter.php @@ -27,18 +27,20 @@ class Formatter implements FormatterInterface protected $message; protected $formattedMessage; - public function format() : FormatterInterface + public function getFormattedMessage(MessageInterface $message) : string { + $this->setMessage($message); + if ($this->hasLogFormat() && $this->getLogFormat() === self::LOG_FORMAT_PIPES) { $this->formatPipes(); } else { $this->formatJson(); } - return $this; + return $this->formattedMessage; } - public function formatPipes() : FormatterInterface + protected function formatPipes() : FormatterInterface { $logMessage = $this->getMessage(); @@ -55,7 +57,7 @@ public function formatPipes() : FormatterInterface return $this; } - public function formatJson() : FormatterInterface + protected function formatJson() : FormatterInterface { $logMessage = json_encode($this->getMessage()); $this->setFormattedMessage($logMessage); @@ -63,7 +65,7 @@ public function formatJson() : FormatterInterface return $this; } - public function getMessage() : MessageInterface + protected function getMessage() : MessageInterface { if ($this->message === null) { throw new \LogicException('Formatter messageParts has not been set.'); @@ -72,23 +74,15 @@ public function getMessage() : MessageInterface return $this->message; } - public function setMessage(MessageInterface $message) : FormatterInterface + protected function setMessage(MessageInterface $message) : FormatterInterface { $this->message = $message; return $this; } - public function getFormattedMessage() : string - { - if ($this->formattedMessage === null) { - throw new \LogicException('Formatter formattedMessage has not been set.'); - } - - return $this->formattedMessage; - } - public function setFormattedMessage(string $formattedMessage) : FormatterInterface + protected function setFormattedMessage(string $formattedMessage) : FormatterInterface { $this->formattedMessage = $formattedMessage; diff --git a/src/Process/Pool/Logger/FormatterInterface.php b/src/Process/Pool/Logger/FormatterInterface.php index 888f99a6..f5fc4f4c 100644 --- a/src/Process/Pool/Logger/FormatterInterface.php +++ b/src/Process/Pool/Logger/FormatterInterface.php @@ -7,20 +7,7 @@ interface FormatterInterface { - - public function format() : FormatterInterface; - - public function formatPipes() : FormatterInterface; - - public function formatJson() : FormatterInterface; - - public function getMessage() : MessageInterface; - - public function setMessage(MessageInterface $message) : FormatterInterface; - - public function getFormattedMessage() : string; - - public function setFormattedMessage(string $formattedMessage) : FormatterInterface; + public function getFormattedMessage(MessageInterface $message) : string; public function setProcessPathPadding(int $processPathPadding) : FormatterInterface; From 23e42c10e942244049ce637079caefee32258810 Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Fri, 29 Jun 2018 07:46:22 -0500 Subject: [PATCH 22/24] OPS-981 | Skip setting the message object on the formatter and just pass it to methods --- src/Process/Pool/Logger/Formatter.php | 63 ++++----------------------- 1 file changed, 9 insertions(+), 54 deletions(-) diff --git a/src/Process/Pool/Logger/Formatter.php b/src/Process/Pool/Logger/Formatter.php index c95a39d4..62a67049 100644 --- a/src/Process/Pool/Logger/Formatter.php +++ b/src/Process/Pool/Logger/Formatter.php @@ -15,78 +15,33 @@ class Formatter implements FormatterInterface const PROP_PROCESS_ID_PADDING = 'process_id_padding'; const PROP_LOG_FORMAT = 'log_format'; - const KEY_TIME = 'time'; - const KEY_LEVEL = 'level'; - const KEY_PROCESS_ID = 'processId'; - const KEY_TYPE_CODE = 'typeCode'; - const KEY_MESSAGE = 'message'; - const LOG_FORMAT_PIPES = 'pipes'; const LOG_FORMAT_JSON = 'json'; - protected $message; - protected $formattedMessage; - public function getFormattedMessage(MessageInterface $message) : string { - $this->setMessage($message); - if ($this->hasLogFormat() && $this->getLogFormat() === self::LOG_FORMAT_PIPES) { - $this->formatPipes(); + return $this->formatPipes($message); } else { - $this->formatJson(); + return $this->formatJson($message); } - - return $this->formattedMessage; } - protected function formatPipes() : FormatterInterface + protected function formatPipes(MessageInterface $message) : string { - $logMessage = $this->getMessage(); - $processIdPaddingLength = $this->getProcessIdPadding(); $processPathPaddingLength = $this->getProcessPathPadding(); - $processID = str_pad($logMessage->getProcessId(), $processIdPaddingLength, ' ', STR_PAD_LEFT); - $typeCode = str_pad($logMessage->getTypeCode(), $processPathPaddingLength, ' '); - $level = str_pad($logMessage->getLevel(), 12, ' '); - - $pipeDelimitedMessage = implode(' | ', [$logMessage->getTime(), $level, $processID, $typeCode, $logMessage->getMessage()]); - $this->setFormattedMessage($pipeDelimitedMessage); + $processID = str_pad($message->getProcessId(), $processIdPaddingLength, ' ', STR_PAD_LEFT); + $typeCode = str_pad($message->getTypeCode(), $processPathPaddingLength, ' '); + $level = str_pad($message->getLevel(), 12, ' '); - return $this; + return implode(' | ', [$message->getTime(), $level, $processID, $typeCode, $message->getMessage()]); } - protected function formatJson() : FormatterInterface + protected function formatJson(MessageInterface $message) : string { - $logMessage = json_encode($this->getMessage()); - $this->setFormattedMessage($logMessage); - - return $this; - } - - protected function getMessage() : MessageInterface - { - if ($this->message === null) { - throw new \LogicException('Formatter messageParts has not been set.'); - } - - return $this->message; - } - - protected function setMessage(MessageInterface $message) : FormatterInterface - { - $this->message = $message; - - return $this; - } - - - protected function setFormattedMessage(string $formattedMessage) : FormatterInterface - { - $this->formattedMessage = $formattedMessage; - - return $this; + return json_encode($message); } public function setProcessPathPadding(int $processPathPadding) : FormatterInterface From 96d3cdf2d240a99ab611b91dfe3febf7ae9f649a Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Fri, 29 Jun 2018 09:12:27 -0500 Subject: [PATCH 23/24] OPS-981 | remove vestigial parameter that is now part of the formatter --- src/Environment/Parameters.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Environment/Parameters.yml b/src/Environment/Parameters.yml index d9fe967d..ae01ec01 100644 --- a/src/Environment/Parameters.yml +++ b/src/Environment/Parameters.yml @@ -6,4 +6,3 @@ parameters: neighborhoods.kojo.environment.parameters.database_adapter: '' neighborhoods.kojo.environment.parameters.database_host: '' neighborhoods.kojo.environment.parameters.database_name: '' - neighborhoods.kojo.environment.parameters.log_format: '' From 41df82b1ac0f5af037ad35d853570cf95fb3d12f Mon Sep 17 00:00:00 2001 From: Alex Berryman Date: Fri, 29 Jun 2018 09:14:13 -0500 Subject: [PATCH 24/24] OPS-981 | use !php/const to link yaml with the constant in the code --- src/Process/Pool/Logger/Formatter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Process/Pool/Logger/Formatter.yml b/src/Process/Pool/Logger/Formatter.yml index 69c60cfa..ffcc8b5b 100644 --- a/src/Process/Pool/Logger/Formatter.yml +++ b/src/Process/Pool/Logger/Formatter.yml @@ -1,7 +1,7 @@ parameters: process.pool.logger.formatter.process_id_padding: 6 process.pool.logger.formatter.path_padding: 80 - process.pool.logger.formatter.log_format: 'json' + process.pool.logger.formatter.log_format: !php/const \Neighborhoods\Kojo\Process\Pool\Logger\Formatter::LOG_FORMAT_JSON services: neighborhoods.kojo.process.log_formatter: class: Neighborhoods\Kojo\Process\Pool\Logger\Formatter