Mod de a înregistra erorile plugin-ului în fișierul error_log al plugin-ului
Cum pot fi înregistrate erorile specifice unui anumit plugin într-un fișier error_log
situat în folderul rădăcină al plugin-ului?
Exemple:
- Erori de sintaxă
- Erori de bază de date
- Erori de compatibilitate
- Erori PHP fatale
- Erori de cerere Ajax
Similar cu fișierul /wp-content/debug.log
activat când WP_DEBUG_LOG
este definit ca true
în fișierul wp-config.php
(dar specific pentru plugin-uri, cu erorile separate de orice altă eroare generală nelată de plugin).
Cercetare:
Depanarea Plugin-urilor în documentația oficială Codex menționează utilizarea plugin-urilor terțe pentru depanarea plugin-urilor terțe.
Nu Dezvolta Fără Depanarede Smashing Magazine se referă la depanarea la nivel de întreg site-ul.
Manualul Plugin-urilor nu pare să ofere linii directoare specifice.

Prin setarea celui de-al doilea argument la 3 pentru error_log
:
$pluginlog = plugin_dir_path(__FILE__).'debug.log';
$message = 'O EROARE'.PHP_EOL;
error_log($message, 3, $pluginlog);

Nu pot fi atât de receptiv pe cât aș dori, dar voi explora această soluție și voi reveni cu feedback când va fi posibil.

După toate indicațiile și după o lectură mai amănunțită a documentației sursă furnizate, aceasta pare să fie răspunsul corect pentru domeniul definit în enunțul problemei. Gestionarea erorilor este de obicei mai detaliată, dar asta ar fi în afara subiectului pentru problema descrisă aici, iar eu cred că această soluție va funcționa bine cu gestionarea excepțiilor folosind blocuri try()
și catch()
(voi explora această cale în continuare...).

da, mi-am dat seama că, din moment ce ai menționat atât de multe tipuri diferite de erori, căutai ceva la fel de generic ca aceasta pentru a putea testa și înregistra orice mesaj unde este nevoie. Pe lângă excepții, cum ai menționat, erorile PHP fatale ar necesita o gestionare suplimentară prin register_shutdown_function
sau folosind hook-ul de shutdown, de ex. add_action('shutdown', 'custom_catch_fatals');

Am folosit unele dintre aceste lucruri într-un proiect recent, așa că poate ți se vor părea utile ca referință: https://gist.github.com/majick777/6c4e4074ce4a59fe09f7baa855732aee
