diff options
author | Piers Warmers <piers.warmers@theiconic.com.au> | 2017-03-14 18:07:57 +1100 |
---|---|---|
committer | Jordi Boggiano <j.boggiano@seld.be> | 2017-03-14 08:07:57 +0100 |
commit | a0406bf8dd17b7acf537a2da3e52dcb08c651665 (patch) | |
tree | 34c5170e41eb8d972d506806db8b6eccaead8ea0 /src | |
parent | f3dda67c09c1dc45e9196206ebf42b5bbc0e6332 (diff) | |
download | monolog-a0406bf8dd17b7acf537a2da3e52dcb08c651665.zip monolog-a0406bf8dd17b7acf537a2da3e52dcb08c651665.tar.gz monolog-a0406bf8dd17b7acf537a2da3e52dcb08c651665.tar.bz2 |
Handle DateTime objects in formatted messages (#940)
* Handle DateTime objects in formatted meessages
* Use interface to catch both DateTime and DateTimeImmutable
* Maintain formatting standards.
* Visibility to private.
Diffstat (limited to 'src')
-rw-r--r-- | src/Monolog/Processor/PsrLogMessageProcessor.php | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Monolog/Processor/PsrLogMessageProcessor.php b/src/Monolog/Processor/PsrLogMessageProcessor.php index b9a00a4..8078403 100644 --- a/src/Monolog/Processor/PsrLogMessageProcessor.php +++ b/src/Monolog/Processor/PsrLogMessageProcessor.php @@ -20,6 +20,18 @@ namespace Monolog\Processor; */ class PsrLogMessageProcessor { + const SIMPLE_DATE = "Y-m-d\TH:i:sP"; + + private $dateFormat; + + /** + * @param string $dateFormat The format of the timestamp: one supported by DateTime::format + */ + public function __construct(string $dateFormat = null) + { + $this->dateFormat = null === $dateFormat ? static::SIMPLE_DATE : $dateFormat; + } + /** * @param array $record * @return array @@ -34,6 +46,8 @@ class PsrLogMessageProcessor foreach ($record['context'] as $key => $val) { if (is_null($val) || is_scalar($val) || (is_object($val) && method_exists($val, "__toString"))) { $replacements['{'.$key.'}'] = $val; + } elseif ($val instanceof \DateTimeInterface) { + $replacements['{'.$key.'}'] = $val->format($this->dateFormat); } elseif (is_object($val)) { $replacements['{'.$key.'}'] = '[object '.get_class($val).']'; } else { |