Mage :: log () no inicia sesión en todos los archivos utilizados por Magento?

11

He sobrescrito Sitemap.phpen app/code/local/Mage/Sitemap/Model/Sitemap.php. El archivo parece estar usado, si elimino todo el contenido, hay un error como se esperaba.

Copié el contenido completo del estándar Sitemap.php, con un solo cambio. yo añadí

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

Cuando hago esto en otro sitio, se imprime testen var/log/system.logcomo se esperaba, sólo en este archivo, que no registra el mensaje.

Cualquier ayuda es muy apreciada


EDITAR

utilizando

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

tampoco funciona

Yorrd
fuente
¿Está habilitado el registro en la configuración del sistema? Es var/log/modificable por el usuario de la web ( apache, httpd, www-data, etc.)
musicliftsme
iniciar sesión funciona SitemapController.php, así que sí, lo es. y sí var/loges escribible Gracias por sus ideas
Yorrd
¿Quizás el núcleo Mage no está cargado? Quizás intente Mage :: app ()
Tim Hallman
@TimHallman ¿cómo funcionaría magento sin núcleo? El sitio funciona bien
2015
Porque es sitemap.php. Intente iniciar sesión en app/code/local/Mage/Sitemap/Model/Observer.phplugar deSitemap.php
Tim Hallman,

Respuestas:

11

Supongo que el archivo se carga pero no se llama al método. Tan solo establezca un punto de interrupción (o mal camino a die()) en su método y asegúrese de que se llame.

Después de que magento se inicializa, Mage::logal menos con el $forceparámetro escribe su registro

Fabian Blechschmidt
fuente
Si. Gracias. Creo que abriré otra pregunta por qué mi generateXml no está cargado. Porque no, no alcanza el punto de ruptura.
Yorrd
29

Uso Mage::log('text here', null, 'system.log', true).
Eso debería funcionar todo el tiempo.

Marius
fuente
O, por ejemplo, un sitemap.log en caso de que no desee que sus registros de sitemap se mezclen con elementos aleatorios.
Julien Lachal
@JulienLachal. Cierto. El nombre del archivo puede ser cualquier cosa.
Marius
mira mi edición, esto tampoco funciona
Yorrd
2

Otra suposición aquí: la generación del mapa del sitio generalmente se desencadena por un cronjob. Si su cronjob funciona con un usuario diferente al de su usuario web y no tiene los permisos para escribir en su archivo system.log existente, no obtendrá ninguna entrada.

Kristof en Fooman
fuente
Es cierto, pero lo estoy probando simplemente haciendo clic en "generar" en la página de administración del mapa del sitio. Entonces supongo que debería tener permiso. EDITAR: tampoco funciona si el permiso se establece en 777
Yorrd
0

Otorgue el permiso correcto a su var/carpeta:

chmod -Rv 777 var/

Así que usa este código a continuación:

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

El print_r evitará algunos errores relacionados con el tipo de la variable.

Rafael Corrêa Gomes
fuente
0

Pon esta línea en cualquier función o archivo

Mage :: log ("Su mensaje -", nulo, 'your-log-filename.log');

este archivo se creará en la ruta de la carpeta raíz, como

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

Espero que funcione para ti.

Sarfaraj Sipai
fuente