Как мне узнать время из сообщения Monolog?

Я добавил Monolog v.1.24.0 в свой проект.

Создать регистратор:

$logger = new Logger('db');
$logger->setTimezone(DateTime::getTimezone());
$logger->pushHandler(new StreamHandler(ROOT.'/log/db.log', Logger::DEBUG, 600));

Теперь в какой-то момент позже в коде я создаю сообщение и отправляю его в браузер:

// $result contains my array
$tmp = \json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRESERVE_ZERO_FRACTION | JSON_UNESCAPED_SLASHES);
echo $tmp;
$logger->notice($tmp);

Моя проблема в том, что я хочу извлечь информацию о времени, содержащуюся в журнале, хранящемся в db.log и включить к тому, что повторяется пользователю.

Как это возможно?

PS: я могу сам построить время, но тогда лучше удалить весь проект Monolog и использовать свой собственный!

0

Решение

Вы пытаетесь использовать монолог и вообще регистратор PSR-3 для чего-то, что не предназначено для этого …

То, что происходит внутри монолога или, более конкретно, в этом случае с клиентом PSR-3, выходит за рамки того, чего вы пытаетесь достичь. Скорее всего, ваш бизнес-домен говорит, что вам нужно сохранить запись о действии, которое совершил пользователь. Затем сделайте это. Он не говорит о том, что вы хотите записать это, или если он говорит, что вам нужно записать это эти два не следует смешивать

Более того, вы не должны смешивать то, что монолог делает внутри, с тем, что вам нужно отобразить пользователю.

Таким образом, в итоге решение будет:

// $result contains my array
$tmp = \json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRESERVE_ZERO_FRACTION | JSON_UNESCAPED_SLASHES);
echo $tmp;

//
// write here custom code that saves my $msg where ever I need to and that it contains also the timestamp
//

// Then come here and log that my record is saved..
$logger->notice('Record is saved');

Вы должны понимать, что логгер является абстрактным слоем для LOGGING.. Вы нарушаете принцип Лискова SOLID … Что произойдет, если в будущем вы удалите DB / Stream Handler из вашего монолога? И замените его чем-то другим, у которого нет метки времени.

Ваш код не удастся.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector