Désactiver les logs dans la base de données sur Magento

octobre 20th, 2014 | by | magento

Oct
20

A la recherche d'optimisations pour améliorer la vitesse de chargement de Magento, je me suis penché sur les logs.

Car Magento logs énormément de choses et pas seulement dans les fichiers du dossier var/log, il enregistre énormément de choses dans la base de donnés notamment sur les clients.

Cela prend beaucoup de ressource car fait appel à la base pour chaque insertion mais l’alourdi également inutilement.
On se retrouve rapidement avec plusieurs centaines de Mo voir Go de logs.

Désactiver le log dans System > Configuration > Advanced > Disable Modules Output ne suffit pas car il n'a pas de "output" à proprement parlé.

De plus, modifier dans System > Configuration > Developer > Log Settings > Enabled désactivera seulement les logs fichier du dossier var/log

Pour vraiment arrêter les logs sql voici comment faire :

1 - Ouvrir le fichier app/etc/local.xml

2 - Insérer ce code avant la balise fermante </config>

<frontend>
    <events>
        <controller_action_predispatch>
            <observers><log><type>disabled</type></log></observers>
        </controller_action_predispatch>
        <controller_action_postdispatch>
            <observers><log><type>disabled</type></log></observers>
        </controller_action_postdispatch>
        <customer_login>
            <observers><log><type>disabled</type></log></observers>
        </customer_login>
        <customer_logout>
            <observers><log><type>disabled</type></log></observers>
        </customer_logout>
        <sales_quote_save_after>
            <observers><log><type>disabled</type></log></observers>
        </sales_quote_save_after>
        <checkout_quote_destroy>
            <observers><log><type>disabled</type></log></observers>
        </checkout_quote_destroy>
    </events>
</frontend>

3 - sauvegarder le fichier

4 - Aller dans System > Configuration > Advanced et mettre Disable pour Mage_Log

5 - Pour finir, nettoyer le cache dans System > Cache Management

Magento n'écrira plus dans les tables de logs !

Ce n'est pas fini car il faut maintenant vider ces tables.

Toujours faire une sauvegarde quand on modifie la base !

Il suffit donc de faire des TRUNCATE :

TRUNCATE log_customer;
TRUNCATE log_quote;
TRUNCATE log_summary;
TRUNCATE log_summary_type;
TRUNCATE log_url;
TRUNCATE log_url_info;
TRUNCATE log_visitor;
TRUNCATE log_visitor_info;
TRUNCATE log_visitor_online;
TRUNCATE report_event;

 

 

Authored by

Laisser un commentaire