Пользовательский лог-файл ZF2, установите имя пользователя

Как я могу сделать собственный журнал (используя Zend2) и установить имя пользователя для каждого события журнала.
Вот мой пример того, как я пытаюсь:

public function log( )
{

$log_file = 'path/to/logfile.log';

$format = '%timestamp% %priorityName% (%username%) %message%';
$formatter = new Zend\Log\Formatter\Simple($format);
$formatter->setDateTimeFormat('H:i:s');

$formatter->format( array('username'=> SET_USER_NAME ));

$logWriter = new LogWriter($log_file);
$logWriter->setFormatter($formatter);

$logger = new Logger;
$logger->addWriter( $logWriter );

return $logger;
}

Я попробовал следующее

$this->log()->info(" Log message " );

И результат:

11:33:54 INFO (%username%) Log message

Спасибо!

0

Решение

Ты можешь использовать третий параметр метода журнала extra — массив дополнительных данных, которые преобразуются в json и автоматически добавляются в сообщение журнала форматером (Zend \ Log \ Formatter \ Simple :: формат)

Простой пример:

$writer = new \Zend\Log\Writer\Stream('php://output');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);

$logger->info('Informational message', ['user' => 'administrator']);

Выводит что-то вроде этого:

2014-12-01T13:00:00+00:00 INFO (6): Informational message {"user":"administrator"}
0

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

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

По вопросам рекламы [email protected]