Mage :: log () non accede a tutti i file utilizzati da Magento?


11

Ho sovrascritto Sitemap.phpin app/code/local/Mage/Sitemap/Model/Sitemap.php. Il file sembra essere utilizzato, se rimuovo tutto il contenuto, c'è un errore come previsto.

Ho copiato il contenuto completo dello standard Sitemap.php, con una sola modifica. Ho aggiunto

public function generateXml() {
    Mage::log('test');
    ...
}

Quando faccio questo in qualsiasi altro luogo, viene stampato testin var/log/system.logcome previsto, solo in questo file, esso non registra il messaggio.

Qualsiasi aiuto è molto apprezzato


MODIFICARE

utilizzando

Mage::log('text', null, <file>, true);

non funziona neanche


La registrazione è abilitata nella configurazione del sistema? È var/log/scrivibile dal tuo utente web ( apache, httpd, www-data, etc.)
musicliftsme

la registrazione funziona SitemapController.php, quindi sì, lo è. e sì var/logè scrivibile. Grazie per le tue idee
Yorrd,

Forse il core di Mage non è caricato? Forse prova Mage :: app ()
Tim Hallman

@TimHallman come funzionerebbe il magento senza core? Il sito funziona perfettamente
Yorrd

Perché è sitemap.php. Prova ad accedere app/code/local/Mage/Sitemap/Model/Observer.phpanziché aSitemap.php
Tim Hallman,

Risposte:


11

Suppongo che il file sia caricato ma il metodo non viene chiamato. Quindi basta impostare un breakpoint (o una cattiva strada a die()) nel proprio metodo e assicurarsi che sia chiamato.

Dopo che il magento è inizializzato Mage::logalmeno con il $forceparametro scrive il suo registro


Sì. Grazie. Immagino che aprirò un'altra domanda perché il mio generateXml non è caricato. Perché no, non raggiunge il punto di interruzione.
Yorrd,

29

Usa Mage::log('text here', null, 'system.log', true).
Dovrebbe funzionare tutto il tempo.


O ad esempio un sitemap.log nel caso in cui non desideri che i tuoi log delle sitemap vengano mescolati con elementi casuali.
Julien Lachal,

@JulienLachal. Vero. Il nome file può essere qualsiasi cosa.
Marius

per favore, vedi la mia modifica, neanche questo funziona
Yorrd

2

Un'altra ipotesi qui: la generazione della Sitemap è generalmente innescata da un cronjob. Se il tuo cronjob viene eseguito con un utente diverso rispetto al tuo utente web e non dispone delle autorizzazioni per scrivere nel tuo file system.log esistente, non otterrai alcuna voce.


Vero, ma lo sto testando semplicemente facendo clic su "genera" nella pagina di amministrazione della Sitemap. Quindi suppongo che dovrebbe avere il permesso. EDIT: non funziona neanche se l'autorizzazione è impostata su 777
Yorrd

0

Dai il permesso giusto alla tua var/cartella:

chmod -Rv 777 var/

Quindi usa come questo codice qui sotto:

Mage::log(print_r($yourTest), null, 'customLogFile.log', true);

Il print_r impedirà alcuni errori relativi al tipo della variabile.


0

Inserisci questa riga in qualsiasi funzione o file

Mage :: log ("Il tuo messaggio -", null, 'your-log-filename.log');

questo file verrà creato all'interno del percorso della cartella principale come

/var/log/your-log-filename.log

spero che funzionerà per te.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.