Același mesaj de log continuă să apară de mii de ori în fișierul debug.log
Am încercat să debughez codul PHP pe un site WordPress folosind error_log($message) sau trigger_error($message) pentru a scrie în debug.log.
Mesajul din aceste instrucțiuni de logare continuă să apară de mii de ori în fișierul debug.log dintr-o singură instrucțiune declarată în functions.php (pentru exemplu, aici înregistrez din functions.php al temei, care are același rezultat de afișare multiplă, deși inițial debugam dintr-un plugin de snippet-uri).
Pentru a verifica dacă problema este cauzată de codul meu din functions.php sau de plugin-ul de snippet-uri care ar fi apelat de mai multe ori, am încercat să loghez cu mecanisme diferite [chrome console log & alert în browser]. Rezultatul a fost că mesajul PHP de debug a apărut de mai multe ori, în timp ce console.log și alert au apărut o singură dată. Deci cred că codul meu nu rulează de mai multe ori, dar mesajele de debug afișate prin error_log sau trigger_error apar de mai multe ori și continuă să apară de mii de ori.
Am crezut că ar putea fi din cauza mediului local de dezvoltare, așa că am încercat același lucru într-o instalare fresh de WordPress pe un mediu real - același rezultat. Nu am găsit încă o soluție/explicație.
functions.php DIN TEMA MEA CU CODUL TESTAT:
.
.
.
//continuă să apară în debug.log (de multe ori)
$debug_log = "DEBUG-debug log";
trigger_error($debug_log);
//SAU
error_log($debug_log);
//apare o singură dată în consola Chrome
$debug_console = "DEBUG-console";
echo "<script>console.log('$debug_console');</script>";
//apare o singură dată ca alertă în Chrome
$debug_alert = "DEBUG-alert";
echo "<script type='text/javascript'>alert('$debug_alert');</script>";
FIȘIERUL debug.log ARATĂ ASTFEL:
[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: Clarificare întrebare Pentru a fi clar, mesajul de log apare de mai multe ori (și continuă să apară de mii de ori) de fiecare dată când încarc o pagină (deci 1 încărcare de pagină → mesaj de log repetat continuu din aceeași instrucțiune de log din functions.php)
EDIT: Am verificat dezactivarea WordPress Heartbeat Așa cum s-a sugerat, am încercat să dezactivez WordPress Heartbeat adăugând un cod găsit pe Google pentru a opri Heartbeat în WordPress (voi verifica mai târziu dacă este necesar sau nu) în functions.php la început...dar tot primesc acele mesaje de log de mai multe ori la o singură încărcare de pagină.
CODUL HEARTBEAT ADAUGAT ÎN functions.php:
add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}
EDIT: Am verificat apelurile AJAX Așa cum s-a sugerat, am monitorizat toate apelurile de rețea către server prin opțiunile de dezvoltator Chrome...nu există apeluri de rețea după ce o pagină este încărcată complet (pagina se încarcă cu cereri get/post html + resurse), deci nu există cereri AJAX către server după încărcarea paginii.

OK, din câte înțeleg, ai introdus acest cod:
$debug_log = "DEBUG-jurnal de depanare";
trigger_error($debug_log);
//SAU
error_log($debug_log);
direct în fișierul tău functions.php
.
Asta înseamnă că acest cod va fi executat (deci un nou element de jurnal va fi adăugat în fișierul de jurnal) de fiecare dată când fișierul functions.php
este încărcat - adică la fiecare cerere către WP-ul tău.
Asta înseamnă că de fiecare dată când cineva vizitează pagina ta, va fi adăugat un nou element în jurnal.
Dar... Asta nu e tot... Dacă ești autentificat, atunci WP trimite cereri Heartbeat. Acestea vor duce și ele la noi intrări în jurnal.
Nu sunt atât de multe intrări de jurnal înregistrate la aceeași oră în jurnalul tău, așa că IMHO este puțin probabil să fie afișate în aceeași cerere.
PS. JS nu va fi executat în timpul apelurilor AJAX, deci nu le vei vedea de mai multe ori.

Deci acum am adăugat un fragment de cod pe care l-am găsit pe internet pentru a dezactiva Heartbeat în WordPress (voi verifica mai târziu dacă este necesar sau nu) în functions.php la început... dar tot primesc acele mesaje de log de multiple ori în timpul încărcării unei singure pagini.

Am monitorizat apelurile de rețea prin opțiunile de dezvoltator Chrome către serverul meu web... nu există apeluri de rețea după ce o pagină este încărcată complet (pagina s-a încărcat cu apeluri de rețea get/post html + resurse)

Domnule, puteți încerca singur să afișați log-urile din functions.php în mediul dumneavoastră disponibil cu o instalare fresh de WordPress și, așa cum am menționat în întrebarea originală, am încercat deja acest lucru și am obținut aceleași rezultate chiar și cu o instalare fresh de WordPress pe un server real. Prin urmare, cred că nu este nimic în neregulă cu codul/configurările utilizatorului.

@UtsavMadaan adaugă var_dump pentru $_SERVER în acel log. Vei afla ce cereri cauzează logurile.

Ok, am făcut asta. Logurile cu reprezentarea sub formă de string a $_SERVER apar mult mai rar în comparație cu logurile pe care le-am afișat pentru testare..acum se afișează doar de 3-4 ori per cerere cu dump-ul $_SERVER, cu originea/URI-ul cererii venind de la pagina de frontend, cron și ajax. Nu știu ce să fac..voi analiza mai bine după câteva zile, având foarte puțin timp pentru proiect și voi actualiza aici. Oricum, mulțumesc.

Deci ți-ai răspuns singur la întrebare - nu există loguri multiple per cerere. AJAX este o altă cerere (și aparent există un apel AJAX pe pagina ta) și CRON este o altă cerere (iar WP face unele cereri CRON în fundal în timpul vizitării paginii) - totul este în regulă și exact așa cum ar trebui să fie.

Nu domnule, problema nu este rezolvată deoarece jurnalele sunt mult mai multe atunci când înregistrez doar un text aleatoriu, așa cum se arată în întrebarea originală (un mic text aleatoriu înregistrat și a fost afișat de multe ori și continuă să se afișeze), nici nu folosesc vreo temă externă pentru moment...voi afla cauza în câteva zile și voi actualiza aici...dar este ciudat când înregistrez $_SERVER se înregistrează doar de 4-5 ori per cerere..dar când e un text aleatoriu continuă să se înregistreze
