Nette neloguje výnimky tak ako ich PHP vyhodí
- Čamo
- Člen | 798
Mám jednoduchú handle metodu, ktorá volá nejaký model, ktorý môže padnúť na roznych chybách. Preto je celý kód v try-catchy ktorý by mal zalogovať čo sa stalo, tak ako to mám v celej aplikácii. Problém je že Nette mi zaloguje výnimku, ktorá vôbec nesúvisí s chybou, ktorá nastala, ale miesto nej je tam uložené niečo čo mi vôbec nedáva zmysel.
Tu je odkaz na exception: https://drive.google.com/…oGvF8I_/view?…
Miesto toho by v exception mal byť text: Unknown column ‚user_id‘
in ‚field list‘. Miesto toho je tam text Cannot load
presenter ‚Front:Log‘, class ‚App\FrontModule\Presenters\LogPresenter‘
was not found.
Toto je kód ktorý spúštam:
public function handleMergeCompany()
{
try {
$fromCompanyId = $this->httpRequest->getPost('fromCompanyId');
$toCompanyId = $this->httpRequest->getPost('toCompanyId');
$this->company->db->begin();
$this->company->mergeCompany($fromCompanyId, $toCompanyId, $this->userData->id);
$this->company->db->commit();
$this->flashMessage("Firma bola zlúčená.", 'success');
}
catch ( \Exception $e ) {
Debugger::log($e, Debugger::EXCEPTION);
$this->company->db->rollback();
$this->flashMessage('Pri zlučovaní firiem došlo k chybe. Firmy neboli zlúčené.', 'danger');
}
}
Editoval Čamo (3. 3. 2023 12:47)
- Marek Bartoš
- Nette Blogger | 1280
Tak hledej kde odkazuješ na Front:Log. Jednoduše ti jinde vzniká jiná výjimka a nejspíš ti rozbíjí logování.
- Kamil Valenta
- Člen | 822
Nesnažíš se někde otevřít URL /log, neodkazuješ na „log“, „Front:log“ nebo neprovádíš redirect na tyto cesty?