errorPresenter – error 500 se negeneruje správně

mat.cerny3
Člen | 9
+
0
-

Zdravím, narazil jsem na problém při dělání errorPresenteru…

Tady mám kód

<?php
declare(strict_types=1);

namespace App\AdminModule\Presenters;

use Nette;
use Nette\Application\Responses;
use Nette\Http;
use Tracy\ILogger;


final class ErrorPresenter implements Nette\Application\IPresenter
{
    use Nette\SmartObject;

    /** @var ILogger */
    private $logger;

    /**
     * @param Nette\Application\Request $request
     * @return Nette\Application\IResponse
     */
    public function run(Nette\Application\Request $request): Nette\Application\IResponse
    {
        $e = $request->getParameter('exception');

        if ($e instanceof Nette\Application\BadRequestException) {
            // $this->logger->log("HTTP code {$e->getCode()}: {$e->getMessage()} in {$e->getFile()}:{$e->getLine()}", 'access');
            [$module, , $sep] = Nette\Application\Helpers::splitName($request->getPresenterName());
            $errorPresenter = $module . $sep . 'Error4xx';
            return new Responses\ForwardResponse($request->setPresenterName($errorPresenter));
        }

        $this->logger->log($e, ILogger::EXCEPTION);
        return new Responses\CallbackResponse(function (Http\IRequest $httpRequest, Http\IResponse $httpResponse): void {
            if (preg_match('#^text/html(?:;|$)#', (string) $httpResponse->getHeader('Content-Type'))) {
                require __DIR__ . '/templates/Error/500.phtml';
            }
        });
    }
}

Errory 4×x to generuje správně, ale s 500 to má problém a hází to „Call to a member function log() on null“

Problém to má s řádkem

$this->logger->log($e, ILogger::EXCEPTION);

Potřeboval bych poradit jak tento problém ošetřit.

ali
Člen | 342
+
0
-

Property $logger nastav na public a pridej k ni anotaci @inject

mat.cerny3
Člen | 9
+
0
-

Teď mi to pro změnu hází error:

Service of type Tracy\ILogger used in @var annotation at App\AdminModule\Presenters\ErrorPresenter::$logger not found. Did you register it in configuration file?

ali
Člen | 342
+
0
-

A mas v projektu Tracy?

mat.cerny3
Člen | 9
+
0
-

Ano, mám.