Lo stesso messaggio di log continua a essere stampato migliaia di volte nel file debug.log
Stavo eseguendo il debug del mio codice PHP mentre lavoravo su un sito WordPress scrivendo nel file debug.log con error_log($message) o trigger_error($message).
Il mio messaggio in queste istruzioni di log continua a essere stampato migliaia di volte nel file debug.log a partire da una singola istruzione dichiarata in functions.php (a scopo di esempio qui sto registrando dal functions.php del tema, che risulta nello stesso problema di stampa multipla, anche se stavo eseguendo il debug da un plugin di snippet)
Per verificare se questo problema fosse causato dal mio codice in functions.php o dal plugin di snippet chiamato più volte, ho provato a registrare con meccanismi diversi [chrome console log & alert del browser chrome], il risultato è stato che il messaggio di log PHP veniva stampato più volte mentre il console log di chrome e l'alert del browser chrome apparivano solo una volta. Quindi credo che il mio codice non venga eseguito più volte, ma i messaggi di debug log stampati da error_log o trigger_error vengono stampati più volte e continuano a essere stampati migliaia di volte.
Ho pensato che potesse essere dovuto al mio ambiente di sviluppo locale, quindi ho provato la stessa cosa in una nuova installazione di WordPress in un ambiente reale, è successa la stessa cosa. Quindi non ho ancora trovato una soluzione/spiegazione.
IL MIO functions.php DEL TEMA CON TUTTO IL CODICE TESTATO:
.
.
.
//continua a stampare nel debug.log (molte volte)
$debug_log = "DEBUG-debug log";
trigger_error($debug_log);
//OPPURE
error_log($debug_log);
//stampa solo una volta nella console di chrome
$debug_console = "DEBUG-console";
echo "<script>console.log('$debug_console');</script>";
//alert solo una volta in chrome
$debug_alert = "DEBUG-alert";
echo "<script type='text/javascript'>alert('$debug_alert');</script>";
IL MIO FILE debug.log È COSÌ:
[14-Jan-2019 01:05:50 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:05:51 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:05:51 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:05:54 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:05:55 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:05:59 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:04 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:25 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:26 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:26 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:27 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:29 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:31 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:31 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:31 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:32 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:06:47 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:07:02 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:07:17 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:07:29 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:07:31 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:07:32 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:07:47 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
[14-Jan-2019 01:08:02 UTC] PHP Notice: DEBUG-debug log in /app/public/wp-content/themes/Avada-Child-Theme/functions.php on line 15
EDIT: Chiarezza sulla domanda Per essere chiaro, voglio dire che il log viene stampato più volte (e continua a stampare migliaia di volte) ogni volta che carico una pagina (quindi 1 caricamento di pagina -> log multipli ripetuti continuamente da una singola istruzione di log in functions.php)
EDIT: Disabilitato WordPress Heartbeat Come suggerito, ho provato a disabilitare WordPress Heartbeat aggiungendo un pezzo di codice trovato su Google per disabilitare Heartbeat in WordPress (controllerò più tardi se è necessario o meno) in functions.php all'inizio... ma continuo a ricevere quei messaggi di log più volte in un singolo caricamento di pagina.
CODICE HEARTBEAT AGGIUNTO A functions.php:
add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}
EDIT: Controllate le chiamate AJAX Come suggerito, ho monitorato tutte le chiamate di rete al mio server tramite le opzioni per sviluppatori di chrome... non ci sono chiamate di rete dopo che una pagina è completamente caricata (pagina caricata con chiamate di rete get/post html + assets) quindi nessuna richiesta Ajax al server dopo il caricamento della pagina.

OK, per come ho capito, hai inserito questo codice:
$debug_log = "DEBUG-log di debug";
trigger_error($debug_log);
//OPPURE
error_log($debug_log);
direttamente nel tuo file functions.php
.
Ciò significa che questo codice verrà eseguito (quindi un nuovo elemento verrà aggiunto al file di log) ogni volta che il file functions.php
viene caricato - quindi durante ogni richiesta al tuo WordPress.
Significa che ogni volta che qualcuno visualizza la tua pagina, verrà aggiunto un nuovo elemento al log.
Ma... Non è tutto... Se sei loggato, WordPress invia richieste Heartbeat. Anche queste risulteranno in nuovi elementi nel log.
Non ci sono così tanti elementi di log registrati con lo stesso timestamp nel tuo log, quindi secondo me è improbabile che vengano stampati nella stessa richiesta.
PS. Il JS non verrà eseguito durante le chiamate AJAX, quindi non li vedrai più volte.

Quindi ora ho aggiunto un pezzo di codice che ho trovato su internet per disabilitare Heartbeat in Wordpress (controllerò più tardi se è necessario o meno) in functions.php all'inizio...ma continuo a ricevere quei messaggi di log più volte durante il caricamento di una singola pagina.

Ho monitorato le chiamate di rete tramite le opzioni per sviluppatori di Chrome verso il mio server web...non ci sono chiamate di rete dopo che una pagina è completamente caricata (la pagina viene caricata con chiamate get/post html + asset di rete)

Signore, può provare lei stesso a stampare il log da functions.php nel suo ambiente disponibile con una nuova installazione di WordPress e come menzionato nella domanda originale ho effettivamente provato questo e ho ottenuto gli stessi risultati anche con una nuova installazione di WordPress su un server reale. Quindi credo che non ci sia nulla di sbagliato nel codice/impostazioni dell'utente.

@UtsavMadaan aggiungi il var_dump di $_SERVER a quel log. Saprai quali richieste stanno causando i log.

Ok, quindi ho fatto in modo che i log stampassero la rappresentazione stringa di $_SERVER molte meno volte rispetto ai log che ho stampato per i test... ora stampa solo 3-4 volte per richiesta con il dump di $_SERVER con l'origine/URI della richiesta proveniente dalla pagina frontend, cron e ajax. Non so cosa fare... lo analizzerò correttamente tra qualche giorno, avendo pochissimo tempo per il progetto, e aggiornerò qui. Grazie comunque.

Quindi hai risposto da solo alla tua domanda - non ci sono più log multipli per richiesta. AJAX è un'altra richiesta (e apparentemente c'è una chiamata AJAX nella tua pagina) e CRON è un'altra richiesta (e WP effettua alcune richieste CRON in background durante la visita della pagina) - tutto è a posto e esattamente come dovrebbe essere.

No signore, il problema non è risolto perché i log sono molto di più quando si registra solo un testo casuale come mostrato nella domanda originale (un piccolo testo casuale registrato e veniva stampato molte volte e continua a stampare), inoltre non sto utilizzando alcun tema esterno per ora...scoprirò la causa tra qualche giorno e aggiornerò qui...ma è strano quando registro $_SERVER registra solo 4-5 volte per richiesta...ma con un testo casuale continua a registrare
