Собственный класс журнала не выполняет функцию writeLog () — TYPO3 7.6.28

у меня возникли некоторые проблемы с классом / интерфейсом AbstractWriter.

Идея заключалась в том, чтобы написать функцию журнала, которая отправляет мне журналы по электронной почте после вызова импортера.
Командная функция импортера записывает логи.

Класс выглядит так:

<?php

namespace my_site_package\Importer\Log\Writer;

use TYPO3\CMS\Core\Log\LogRecord;
use TYPO3\CMS\Core\Log\Writer\AbstractWriter;
use TYPO3\CMS\Core\SingletonInterface;

class MailWriter extends AbstractWriter implements SingletonInterface
{
protected $buffer = [];

protected $mail;

/**
* @return mixed
*/
public function getMail()
{
return $this->mail;
}

/**
* @param mixed $mail
*/
public function setMail($mail)
{
$this->mail = $mail;
}

/**
* Writes the log record
*
* @param LogRecord $record Log record
* @return \TYPO3\CMS\Core\Log\Writer\WriterInterface $this
* @throws \RuntimeException
*/
public function writeLog(LogRecord $record)
{
var_dump('writeLog');

$data = '';
$recordData = $record->getData();
if (!empty($recordData)) {
if (isset($recordData['exception']) && $recordData['exception'] instanceof \Exception) {
$recordData['exception'] = (string)$recordData['exception'];
}
$data = '- ' . json_encode($recordData);
}

$this->buffer[] = $record->getMessage() . $data;
return $this;
}

function __destruct()
{

error_log('MailWriter');
if ($this->getMail() === null) {
return;
}
/** @var \TYPO3\CMS\Core\Mail\MailMessage $message */
$message = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Mail\\MailMessage');
$message->setTo($this->getMail())
->setFrom($this->getMail())
->setSubject('Importer Output');

$message->setBody(implode("<br/>", $this->buffer), 'text/html');

$message->send();

}
}

0

Решение

Задача ещё не решена.

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

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

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