Come registrare gli errori dei plugin in un file error_log specifico

15 gen 2018, 15:31:19
Visualizzazioni: 16.7K
Voti: 5

Come è possibile registrare gli errori specifici di un determinato plugin in un file error_log situato nella cartella principale del plugin stesso?

Esempi:

  • Errori di sintassi
  • Errori del database
  • Errori di compatibilità
  • Errori PHP fatali
  • Errori nelle richieste Ajax

Simile al file /wp-content/debug.log che viene abilitato quando WP_DEBUG_LOG è definito come true nel file wp-config.php (ma specificamente per i plugin, mantenendo separati i loro errori da quelli generali non correlati al plugin).

Ricerche:

La sezione Debugging Plugins nella documentazione ufficiale del Codex fa riferimento all'uso di plugin di terze parti per il debug di plugin di terze parti.

Don't Develop Without Debuggingdi Smashing Magazine tratta del debug generale a livello di sito.

Il Plugin Handbook non sembra fornire linee guida specifiche su questo argomento.

0
Tutte le risposte alla domanda 1
6
12

Impostando il secondo argomento a 3 per error_log:

$pluginlog = plugin_dir_path(__FILE__).'debug.log';
$message = 'QUALCHE ERRORE'.PHP_EOL;
error_log($message, 3, $pluginlog);

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

15 gen 2018 16:48:54
Commenti

Non posso essere reattivo come vorrei, ma esplorerò questa soluzione e fornirò feedback appena possibile.

UncaughtTypeError UncaughtTypeError
16 gen 2018 08:49:42

Da tutti gli indicatori e dopo un'ulteriore lettura della documentazione fornita, questa sembra essere la risposta corretta per l'ambito definito nella descrizione del problema. La gestione degli errori è tipicamente più verbosa, ma sarebbe fuori tema per il problema descritto qui, e credo che questo approccio funzionerà bene con la gestione delle eccezioni usando i blocchi try() e catch() (esplorerò questa strada successivamente...).

UncaughtTypeError UncaughtTypeError
16 gen 2018 11:23:08

Sì, ho capito che visto che hai menzionato così tanti tipi diversi di errori, stavi cercando qualcosa di generico come questo per poter testare e registrare qualsiasi messaggio dove necessario. A parte le eccezioni come hai menzionato, gli errori fatali di PHP richiederebbero una gestione aggiuntiva tramite register_shutdown_function o usando l'hook shutdown, ad esempio add_action('shutdown', 'custom_catch_fatals');

majick majick
16 gen 2018 11:35:38

Grazie per averlo menzionato, esplorerò anche questi metodi.

UncaughtTypeError UncaughtTypeError
16 gen 2018 11:53:24

Ho utilizzato alcune di queste cose in un progetto recentemente, quindi potresti trovarle utili come riferimento: https://gist.github.com/majick777/6c4e4074ce4a59fe09f7baa855732aee

majick majick
16 gen 2018 13:13:45

Fantastico, questo dovrebbe aiutare a mettere le cose in contesto. Molto apprezzato!

UncaughtTypeError UncaughtTypeError
16 gen 2018 13:16:44
Mostra i restanti 1 commenti