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.
UncaughtTypeError
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...).
UncaughtTypeError
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');
majick
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
majick