{"id":27600,"date":"2021-05-12T09:58:00","date_gmt":"2021-05-12T06:58:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27600"},"modified":"2021-10-18T03:47:54","modified_gmt":"2021-10-18T00:47:54","slug":"jak-rejestrowac-bledy-i-ostrzezenia-w-pliku-w-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-rejestrowac-bledy-i-ostrzezenia-w-pliku-w-php\/","title":{"rendered":"Jak rejestrowa\u0107 b\u0142\u0119dy i ostrze\u017cenia w pliku w PHP"},"content":{"rendered":"<p>Opublikowany w <a href=\"https:\/\/artisansweb.net\/category\/php\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP<\/a><\/p>\n<p>To jest kr\u00f3tki post na temat logowania b\u0142\u0119d\u00f3w w PHP. Powodem udost\u0119pnienia tego kr\u00f3tkiego artyku\u0142u jest to, \u017ce mo\u017ce by\u0107 pomocny dla u\u017cytkownik\u00f3w w \u015bledzeniu b\u0142\u0119d\u00f3w lub debugowaniu b\u0142\u0119d\u00f3w.<\/p>\n<p>Ostatnio pracowa\u0142em nad integracj\u0105 chatbota Facebooka dla jednego z naszych klient\u00f3w. Przy tworzeniu chatbota Facebooka musimy ustawi\u0107 webhooka, na kt\u00f3ry Facebook w tle wysy\u0142a odpowied\u017a u\u017cytkownika. Wtedy nasz kod powinien odpowiedzie\u0107 na podstawie odpowiedzi.<\/p>\n<p>Kiedy zacz\u0105\u0142em prac\u0119 z szablonem Button, szablon Generic (s\u0105 to szablon chatbota Facebooka) nasza aplikacja nie odpowiada\u0142a u\u017cytkownikom. A poniewa\u017c ca\u0142y proces dzia\u0142a w tle, utkn\u0105\u0142em z problemem na prawie 2 godziny.<\/p>\n<p>Nagle wpad\u0142em na pomys\u0142 rejestrowania b\u0142\u0119d\u00f3w w pliku, abym m\u00f3g\u0142 \u015bledzi\u0107, co jest nie tak z kodem. A potem uda\u0142o mi si\u0119 \u015bledzi\u0107 b\u0142\u0119dy kodu i rozwi\u0105za\u0107 wszystkie problemy. Bez dziennik\u00f3w b\u0142\u0119d\u00f3w nie mog\u0142em rozwi\u0105za\u0107 swojego problemu, poniewa\u017c szed\u0142em w zupe\u0142nie z\u0142ym kierunku.<\/p>\n<p>Umie\u015b\u0107 poni\u017cszy kod w pliku konfiguracyjnym, kt\u00f3ry utworzy <code>error.log<\/code>plik w katalogu g\u0142\u00f3wnym.<\/p>\n<pre><code>&lt;?php\nerror_reporting(E_ALL);\nini_set('display_errors', true);\nini_set('log_errors', true);\nini_set('error_log', 'errors.log');\nini_set('log_errors_max_len', 1024);<\/code><\/pre>\n<p>Po dodaniu powy\u017cszego kodu wszystkie b\u0142\u0119dy aplikacji i ostrze\u017cenia zaczn\u0105 logowa\u0107 si\u0119 do <code>error.log<\/code>pliku. Ta wskaz\u00f3wka jest pomocna dla serwera na \u017cywo, aby \u015bledzi\u0107 ewentualne problemy w kodzie. Tylko upewnij si\u0119, \u017ce ustawi\u0142e\u015b 'display_errors&#8217; jak <code>false<\/code>na serwerze produkcyjnym. Poniewa\u017c tutaj <code>true<\/code>oznacza wy\u015bwietlanie b\u0142\u0119d\u00f3w na samej stronie, kt\u00f3rych oczywi\u015bcie nie chcemy.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-rejestrowac-zapytanie-w-laravel\/\" title=\"Jak rejestrowa\u0107 zapytanie w Laravel\">Jak rejestrowa\u0107 zapytanie w Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym artykule poka\u017cemy, jak b\u0142\u0119dy i ostrze\u017cenia w pliku. Poni\u017cszy skrypt automatycznie rozpocznie rejestrowanie b\u0142\u0119d\u00f3w i ostrze\u017ce\u0144 w pliku error.log<\/p>\n","protected":false},"author":1,"featured_media":21773,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[180,277],"tags":[847],"class_list":["post-27600","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chrome-8","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=27600"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/27600\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21773"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=27600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=27600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=27600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}