{"id":229205,"date":"2022-11-09T17:04:00","date_gmt":"2022-11-09T14:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229205"},"modified":"2022-11-09T17:04:06","modified_gmt":"2022-11-09T14:04:06","slug":"psr-i-logimise-liides-ja-miks-logimine-on-oluline","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/psr-i-logimise-liides-ja-miks-logimine-on-oluline\/","title":{"rendered":"PSR-i logimise liides (ja miks logimine on oluline)"},"content":{"rendered":"\n<p>Kaks PHP funktsiooni, mida minu arvates &quot;silumisel&quot; sageli \u00fcle kasutatakse, on <a href=\"https:\/\/php.net\/manual\/en\/function.echo.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">echo<\/a> ja <a href=\"https:\/\/php.net\/manual\/en\/function.var-dump.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">var_dump<\/a> kasutamine. Olen sellest r\u00e4\u00e4kinud m\u00f5nes erinevas silumist k\u00e4sitlevas artiklis (n\u00e4iteks <a href=\"https:\/\/wordpress.mediadoma.com\/et\/xdebugi-kasutamine-koos-valeti-ja-wordpressiga\/\" title=\"siin\">siin<\/a> ja <a href=\"https:\/\/tommcfarlin.com\/debugging-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">siin<\/a> ).<\/p>\n<p>Ja kuigi ma olen siluri kasutamise f\u00e4nn, arvan, et on oluline rakendada ka teatud t\u00fc\u00fcpi logis\u00fcsteemi, et teie v\u00f5i teie klient saaksid tagasi minna ja vaadata \u00fcle s\u00fcsteemis toimuvad tegevused, nagu nad v\u00f5i nende kasutajad seda teevad. tead, kasutanud seda.<\/p>\n<p>Selle tegemiseks on aga kaks aspekti, eriti kui soovite j\u00e4lgida PSR-i logimise liidest ja need on j\u00e4rgmised:<\/p>\n<ol>\n<li>tegeliku logiliidese reeglid,<\/li>\n<li>projekt, mis rakendab nimetatud logiliidese \u00f5igesti.<\/li>\n<\/ol>\n<p>Miks mitte k\u00e4sitleda m\u00f5lemat selles postituses?<\/p>\n<h2>PSR logimisliides<\/h2>\n<p>PSR- i <a href=\"http:\/\/www.php-fig.org\/psr\/psr-3\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">logimisliides<\/a> (v\u00f5i PSR-3) h\u00f5lmab mitmeid asju, millest saate \u00fcksikasjalikumalt lugeda tegelikul lehel.<\/p>\n<p>Need sisaldavad:<\/p>\n<ol>\n<li>P\u00f5hit\u00f5ed<\/li>\n<li>S\u00f5numid<\/li>\n<li>Kontekst<\/li>\n<li>Abistamisklassid<\/li>\n<li>Paketid<\/li>\n<li>Liidesed<\/li>\n<li>Logi tasemed<\/li>\n<li>Ja veel.<\/li>\n<\/ol>\n<p>Kuid selle artikli jaoks tahan ma r\u00e4\u00e4kida konkreetselt liidesest endast, seda rakendavast projektist ja selle t\u00e4htsusest.<\/p>\n<h3>Logimise liides<\/h3>\n<p>Dokumentatsiooni kodulehel on kirjas:<\/p>\n<blockquote>\n<p>See dokument kirjeldab \u00fchist liidest teekide logimiseks.<\/p>\n<p>Peamine eesm\u00e4rk on v\u00f5imaldada raamatukogudel vastu v\u00f5tta PsrLogLoggerInterface objekti ja kirjutada sinna logisid lihtsal ja universaalsel viisil.<\/p>\n<\/blockquote>\n<p>Arengu seisukohast on see tore, eks? Pean silmas, et see pakub \u00fchtset ja j\u00e4rjepidevat viisi, mille abil saame panustada mis tahes logimisteeki, mida me oma projektides kasutame. Ma k\u00e4sitlen oma eelistatud raamatukogu hiljem artiklis.<\/p>\n<p>Neile, kes pole objektorienteeritud programmeerimisega tutvunud v\u00f5i lihtsalt huvitatud sellest, kuidas \u00fchtne liides meile kasulik on, m\u00f5elge sellele j\u00e4rgmiselt: olenemata sellest, millise s\u00fcsteemi valite, on teil kindel funktsioonide, olekute ja muu komplekti olemasolu. saate oma rakenduses kasutada.<\/p>\n<p>L\u00f5ppkokkuv\u00f5ttes pakub logimiss\u00fcsteemi lisamine, millel on standard, mille j\u00e4rgi see peab j\u00e4rgima, mitmesuguseid eeliseid olenemata valitud teegist (nii kaua kui see vastab PSR-3-le).<\/p>\n<h3>Proovige monoloogi<\/h3>\n<p><a href=\"https:\/\/github.com\/Seldaek\/monolog\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Monolog<\/a> on enam-v\u00e4hem PHP rakenduste de facto logimise utiliit.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166191-61e78fbe1b295.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166191-61e78fbe1b295.png\" alt=\"PSR-i logimise liides (ja miks logimine on oluline)\"><\/a><\/p>\n<p>Projekti on lihtne lisada <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composeri<\/a> kaudu, kuid see sisaldab ka mitmesuguseid erinevaid viise andmete v\u00e4ljastamiseks:<\/p>\n<blockquote>\n<p>Monolog saadab teie logid failidesse, pesadesse, postkastidesse, andmebaasidesse ja erinevatesse veebiteenustesse. Vaadake allolevat t\u00f6\u00f6tlejate t\u00e4ielikku loendit. Spetsiaalsed t\u00f6\u00f6tlejad v\u00f5imaldavad teil luua t\u00e4iustatud logimisstrateegiaid.<\/p>\n<\/blockquote>\n<p>Isiklikult olen seda kasutanud ainult v\u00e4ljundi failidesse saatmise kontekstis; aga v\u00f5imalus seda v\u00e4ljastada teistesse s\u00fcsteemidesse (eriti andmebaasidesse, n\u00e4iteks WordPressiga t\u00f6\u00f6tades) on tore. Muidugi ei taha te seda v\u00f5imet kuritarvitada.<\/p>\n<p>Teiseks on oluline m\u00f5ista, et kuigi logija saab instantseerida funktsioonis v\u00f5i m\u00f5nes teises klassis, on selleks ka teisi, rohkem objektorienteeritud viise. PSR-3 katab seda (nagu eespool mainitud).<\/p>\n<p>L\u00fchidalt \u00f6eldes soovite veenduda, et teie klass aktsepteerib LoggerInterface&#8217;i rakendava klassi eksemplari. Monolog rakendab nimetatud liidest, nii et see pole probleem.<\/p>\n<p>Lisaks, mis juhtub siis, kui teil on r\u00fchm seotud klasse, mis k\u00f5ik peavad logimist rakendama?<\/p>\n<ul>\n<li>Kas need klassid p\u00e4rivad \u00fchiselt vanemalt?<\/li>\n<li>Kas need klassid rakendavad m\u00f5nda <a href=\"https:\/\/php.net\/manual\/en\/language.oop5.traits.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">omadust<\/a>? (See on valik, mille s\u00f5ber mulle hiljuti esitas.)<\/li>\n<li>Kas iga klass lihtsalt n\u00f5ustub s\u00f5ltuvusega konstruktoris\u00fcsti kaudu?<\/li>\n<\/ul>\n<p>Logijaid saab klassi lisada mitmel erineval viisil ja see s\u00f5ltub sellest, kuidas teie projekt on korraldatud.<\/p>\n<h2>Lisateave logimise kohta<\/h2>\n<p>Igal juhul on rakendusse sisselogimise juurutamine oluline mitmel p\u00f5hjusel, n\u00e4iteks t\u00f5rkeotsinguks, kui miski ei k\u00e4itu ootusp\u00e4raselt nii arenduses, lavastuses kui ka tootmises.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kui soovite j\u00e4lgida PSR-i logimise liidest, vaadake kindlasti \u00fcle PSR-3 ja tutvuge Monologiga, mis rakendab nimetatud logija liidest.<\/p>\n","protected":false},"author":1,"featured_media":166192,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,842],"tags":[1165],"class_list":["post-229205","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-opetused","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=229205"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229205\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/166192"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=229205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=229205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=229205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}