Na produkci se nelogují errory

Kamil Valenta
Člen | 815
+
0
-

Ahoj,
jsem zvyklý, že na dev a lokále se zobrazují chyby přímo v Tracy, na produkci se pak logují do /log/error.log a /log/exception.log + se vytvoří *.html report.

Bohužel na některých serverech se tak neděje. Pokud v presenteru vyvolám chybu, např. vytvořím instanci neexistující třídy, zobrazí se mi korektně 500.latte (mám ji v češtině, takže se zdá, že ji odbavil ErrorPresenter), ale v logu není zmínka ani v *.log, ani není vytvořen *.html

Přitom:

  1. zápis do adresáře /log je povolen, pokud ručně zavolám
\Tracy\Debugger::log('test');

vytvoří se /log/info.log a v něm řádek s „test“

  1. zdá se, že PHP User Warningy se do /log/error.log logují, ale errory ne
  2. v ErrorPresenter nemám nic zvláštního
namespace App\Presenters;

/**
 * Error presenter.
 */
class ErrorPresenter extends \Nette\Application\UI\Presenter
{

    /**
     * @param  Exception
     * @return void
     */
    public function actionDefault($exception)
    {
        if ($exception instanceof \Nette\Application\BadRequestException)
        {
            $code = $exception->getCode();

            switch ($code)
            {
                case 404:
                    $this->setView('404');
                    break;
                default:
                    $this->setView('500');
            }
        } else
        {
            $this->setView('500');
        }

        if ($this->isAjax())
        {
            // AJAX request? Note this error in payload.
            $this->payload->error = TRUE;
            $this->terminate();
        }
    }

}
  1. zkoušel jsem i v neonu přidat:
Tracy:
    /logSeverity: E_ALL

Ale bez výsledku.

  1. v boostrap.php mám
$configurator = new Nette\Configurator;

//$configurator->setDebugMode(array('moje ip')); // enable for your remote IP
$configurator->enableTracy(__DIR__ . '/../log');

Po každé úpravě čehokoliv mažu cache.

Kde ještě hledat? Co by ještě mohlo ovlivnit to, že na produkci logy nevznikají? :(

Verze Tracy je 2.4.7

Editoval kamil_v (13. 2. 2019 13:57)

David Matějka
Moderator | 6445
+
0
-

v error presenteru to musis zalogovat, viz https://github.com/…resenter.php#L36

Kamil Valenta
Člen | 815
+
0
-

Aha, a je možné, že starší verze to logovala sama?

Protože jsem to nikdy ručně nelogoval, ErrorPresenter s sebou tahám prakticky beze změny, přesto starší projekty logují.

Jinak díky moc za info.