Я пытаюсь получить пользовательские журналы консоли, чтобы
вместо
2019-07-10 03:15:31 Error: [ParseError] syntax error, unexpected '}'
#0 /app/app/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/app/app/vendor...')
#1 [internal function]: Composer\Autoload\ClassLoader->loadClass('App\\Controller\\...')
Я хочу это в формате json
{"Error":"[ParseError] syntax error, unexpected '}'"}
В настоящее время я создал специальный адаптер журнала
// Log/Engine/ApplicationLog.php
class ApplicationLog extends BaseLog
{
public $Logs;
public function __construct($options = [])
{ parent::__construct($options);
// ...
}
public function log($level, $message, array $context = [])
{
// $level = $this->getConfig('type');
$this->$message = 'Test'.$message;
}
public function error($message, array $context = [])
{
// return static::write(__FUNCTION__, '{"error":"'.$message.'"}', $context);
return write('TESTESTSTESTSTEST');
}
}
с конфигом как
// bootstrap.php
Log::setConfig('application', [
'className' => 'Application',
'path' => LOGS,
'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
'file' => 'error',
'engine' => 'console',
]);
Я пытаюсь переопределить методы ошибки BaseLog, чтобы изменить сообщение в соответствии с моими требованиями, но оно не вызывает мое пользовательское сообщение [после удаления параметра engine из setConfig оно вызывало мою функцию].
Любые предложения приветствуются и спасибо.