Mage :: log () ne connecte pas tous les fichiers utilisés par Magento?


11

Je l' ai écrasé Sitemap.phpdans app/code/local/Mage/Sitemap/Model/Sitemap.php. Le fichier semble être utilisé, si je supprime tout le contenu, il y a une erreur comme prévu.

J'ai copié le contenu complet de la norme Sitemap.php, avec un seul changement. J'ai ajouté

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

Quand je fais cela nulle part ailleurs, il imprime testdans var/log/system.logcomme prévu, seulement dans ce fichier, il ne se connecte pas le message.

Toute aide est grandement appréciée


ÉDITER

en utilisant

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

ne fonctionne pas non plus


La journalisation est-elle activée dans la configuration du système? Est - var/log/inscriptibles par votre utilisateur Web ( apache, httpd, www-data, etc.)
musicliftsme

la connexion fonctionne SitemapController.php, alors oui, ça l'est. et oui var/logest accessible en écriture. Merci pour vos idées
Yorrd

Peut-être que le noyau Mage n'est pas chargé? Essayez peut-être Mage :: app ()
Tim Hallman

@TimHallman comment magento fonctionnerait-il sans noyau? Le site fonctionne très bien
Yorrd

Parce que c'est sitemap.php. Essayez de vous connecter app/code/local/Mage/Sitemap/Model/Observer.phpplutôt queSitemap.php
Tim Hallman

Réponses:


11

Je suppose que le fichier est chargé mais que la méthode n'est pas appelée. Il suffit donc de définir un point d'arrêt (ou une mauvaise façon a die()) dans votre méthode et assurez-vous qu'il est appelé.

Une fois magento initialisé Mage::logau moins avec le $forceparamètre écrit son journal


Oui. Merci. Je suppose que je vais ouvrir une autre question pourquoi mon generateXml n'est pas chargé. Parce que non, il n'atteint pas le point d'arrêt.
Yorrd

29

Utilisez Mage::log('text here', null, 'system.log', true).
Cela devrait fonctionner tout le temps.


Ou par exemple un sitemap.log au cas où vous ne voudriez pas que vos journaux de sitemap soient mélangés avec des éléments aléatoires.
Julien Lachal

@JulienLachal. Vrai. Le nom de fichier peut être n'importe quoi.
Marius

s'il vous plaît voir mon montage, cela ne fonctionne pas non plus
Yorrd

2

Autre supposition ici - la génération du plan du site est généralement déclenchée par un cronjob. Si votre cronjob s'exécute sous un autre utilisateur que votre utilisateur Web et n'a pas les autorisations pour écrire dans votre fichier system.log existant, vous n'obtiendrez aucune entrée.


Certes, mais je le teste en cliquant simplement sur "générer" sur la page d'administration du plan du site. Je suppose donc qu'il devrait avoir la permission. EDIT: cela ne fonctionne pas non plus si l'autorisation est définie sur 777
Yorrd

0

Donnez le bon permis à votre var/dossier:

chmod -Rv 777 var/

Utilisez donc ce code ci-dessous:

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

Le print_r empêchera certaines erreurs liées au type de votre variable.


0

Mettez cette ligne dans n'importe quelle fonction ou fichier

Mage :: log ("Votre message -", null, 'your-log-filename.log');

ce fichier sera créé à l'intérieur de votre chemin de dossier racine comme

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

j'espère que cela fonctionnera pour vous.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.