1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-10-23 17:46:09 +02:00

Set default date format to have a timezone, fixes #196

This commit is contained in:
Jordi Boggiano
2016-05-26 17:39:41 +01:00
parent 912d813c73
commit 76a91c6722
8 changed files with 27 additions and 14 deletions

View File

@@ -34,10 +34,7 @@ class DateTimeImmutable extends \DateTimeImmutable implements \JsonSerializable
$this->useMicroseconds = $useMicroseconds;
}
/**
* @return string
*/
public function jsonSerialize()
public function jsonSerialize(): string
{
if ($this->useMicroseconds) {
return $this->format('Y-m-d\TH:i:s.uP');
@@ -45,4 +42,9 @@ class DateTimeImmutable extends \DateTimeImmutable implements \JsonSerializable
return $this->format('Y-m-d\TH:i:sP');
}
public function __toString(): string
{
return $this->jsonSerialize();
}
}

View File

@@ -12,6 +12,7 @@
namespace Monolog\Formatter;
use Throwable;
use Monolog\DateTimeImmutable;
/**
* Normalizes incoming records to remove objects/resources so it's easier to dump to various targets
@@ -20,7 +21,7 @@ use Throwable;
*/
class NormalizerFormatter implements FormatterInterface
{
const SIMPLE_DATE = "Y-m-d H:i:s";
const SIMPLE_DATE = "Y-m-d\TH:i:sP";
protected $dateFormat;
@@ -29,7 +30,7 @@ class NormalizerFormatter implements FormatterInterface
*/
public function __construct($dateFormat = null)
{
$this->dateFormat = $dateFormat ?: static::SIMPLE_DATE;
$this->dateFormat = $dateFormat;
if (!function_exists('json_encode')) {
throw new \RuntimeException('PHP\'s json extension is required to use Monolog\'s NormalizerFormatter');
}
@@ -86,7 +87,10 @@ class NormalizerFormatter implements FormatterInterface
}
if ($data instanceof \DateTimeInterface) {
return $data->format($this->dateFormat);
if ($data instanceof DateTimeImmutable) {
return (string) $data;
}
return $data->format($this->dateFormat ?: static::SIMPLE_DATE);
}
if (is_object($data)) {