Logování exceptions včetně IP adresy

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Landsman
Člen | 152
+
0
-

Ahoj,

neřešil tohle někdo? Teď mě napadlo, že by to bylo poměrně dobré pro reprodukování chyb. Pokud mám soft na nahrávání uživatelů, který trackuje IP adresu dalo by se to pěkně spojit a hledat konkrétní video podle IP adresy.

V emailu IP nechodí a v exception.log také není, spojit si to s access logem asi není reálné při větším trafficu.

díky

CZechBoY
Člen | 3608
+
0
-

Pokud se ti vygeneruje (červený) bluescreen tak se ti uloží i $_SERVER proměnná, kde je mj. IP adresa.

GEpic
Člen | 566
+
0
-

CZechBoY napsal(a):

Pokud se ti vygeneruje (červený) bluescreen tak se ti uloží i $_SERVER proměnná, kde je mj. IP adresa.

Dlouho jsem přemýšlel, co to je bluescreen, ale že je červený… heh…

Každopádně na produkci určitě používáš ErrorPresentery, v nich si to můžeš logovat jak chceš, tj. můžeš si zalogovat informace jaké potřebuješ a pak člověka přehodit na příslušný Error code.

CZechBoY
Člen | 3608
+
0
-

@GEpic jo, je to celkem blbej název :-) je to oficiální název Tracy\Bluescreen

Pavel Kravčík
Člen | 1196
+
+1
-

CZechBoY napsal(a):

@GEpic jo, je to celkem blbej název :-) je to oficiální název Tracy\Bluescreen

Fušeřina. :D

Landsman
Člen | 152
+
0
-

@GEpic @CZechBoY Spíše bych rád extendoval nějakou nette exception a overloadoval užití (řekl fw ať používá moji), kam bych si to přidal, aby to bylo pěkně pokupě a mohl jsem to vzít rovnou z e-mailu a pracovat s tím. Dá sa?

Editoval Landsman (20. 9. 2016 15:34)

GEpic
Člen | 566
+
0
-

No problém je že ti může přijít exception, kterou nečekáš (a že přijde, tak to prostě je :D) třeba i z komponenty mimo nette, nebo cokoliv jiného, protože ty které očekáváš, už si odchytil. :D

Bylo by super mít (nebo máme?) událost v případě jakékoliv exception a tam si nadefinovat vlastní chování. :)

Nebo prostě použij Symfony Monolog :)

Viz:

[2016-09-06 12:13:42] Project.CRITICAL: [Bootstrap] Application run error {"exception":"[object] (Nette\\Application\\BadRequestException(code: 404): No route for HTTP request. at C:\\wamp64\\www\\project\\vendor\\nette\\application\\src\\Application\\Application.php:117)"} {"file":"C:\\wamp64\\www\\project\\vendor\\project\\libs\\src\\BaseBootstrap.php","line":46,"class":"Project\\BaseBootstrap","function":"run","url":"/grape-web-project/www/components/storage/c5p6yf39lzef3mnuwk9cjt2tvmd3w7.jpeg","ip":"::1","http_method":"GET","server":"localhost","referrer":"http://localhost/project/www/"}

Editoval GEpic (20. 9. 2016 16:11)

jiri.pudil
Nette Blogger | 1032
+
+1
-

Nedá sa. Buďto si uprav Logger a přidej tu informaci v něm, nebo – vzhledem k tomu, že v jiném vlákně řešíš i notifikační maily a asi tedy chceš mít velkou kontrolu nad logováním – bych na tvém místě uvažoval o Monologu, který ti umožní nakonfigurovat na jednom místě log handlery (do souboru, do syslogu, mailem, 3rd-party integrace, …) i různé processory logovaných zpráv – třeba ten, který ti tam přidá IP adresu :)

Landsman
Člen | 152
+
0
-

@jiri.pudil díky za nasměrování k Monologu vypadá pěkně

EDIT: jakým způsobem v neonu nastavím použití jiného logeru? Jde to?

Editoval Landsman (20. 9. 2016 16:38)

Landsman
Člen | 152
+
0
-

@DavidMatějka Paráda, díky!