Mod de a înregistra erorile plugin-ului în fișierul error_log al plugin-ului

15 ian. 2018, 15:31:19
Vizualizări: 16.7K
Voturi: 5

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.

0
Toate răspunsurile la întrebare 1
6
12

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);

http://php.net/manual/en/function.error-log.php

15 ian. 2018 16:48:54
Comentarii

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 UncaughtTypeError
16 ian. 2018 08:49:42

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 UncaughtTypeError
16 ian. 2018 11:23:08

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 majick
16 ian. 2018 11:35:38

Mulțumesc pentru mențiune, voi explora și aceste metode.

UncaughtTypeError UncaughtTypeError
16 ian. 2018 11:53:24

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 majick
16 ian. 2018 13:13:45

Excelent, asta ar trebui să ajute la contextualizare. Apreciez mult!

UncaughtTypeError UncaughtTypeError
16 ian. 2018 13:16:44
Arată celelalte 1 comentarii