Outils pour utilisateurs

Outils du site


erp:odoo12:logging_couleur

Logs (avec couleurs)

https://www.cybrosys.com/blog/logging-in-odoo-13

Afficher des infos dans le log d'Odoo pour debug.

Au début d'un module, importer logging et récupérer un logger :

import logging
_logger = logging.getLogger(__name__)

info(), warning(), error()

Dans le code du module, utiliser ce _logger pour écrire dans le log :

_logger.info("Bonjour !")

Ceci ajoute la chaîne au log d'Odoo, que l'on peut afficher en temps réel grâce à cette commande :

sudo tail -f /var/log/odoo/odoo-server.log

debug()

S'utilise de la même façon que les autres fonctions, mais n'apparaît dans le log que si le niveau de log défini dans la configuration est debug.

_logger.debug("Bonjour !")

Configuration

Dans le fichier odoo.conf :

  • logfile = False ⇒ permet de ne pas écrire les logs vers un fichier mais les affiche sur la sortie standard.
    • C'est pratique dans un contexte de développement, quand on lance le serveur dans un terminal
  • log_level = debug ⇒ définir le niveau d'affichage.
    • Mettre debug pour activer l'affichage de _logger.debug()

Mettre des couleurs

Pour visualiser plus rapidement nos messages perdus au milieu de toutes les infos du log d'Odoo, il est possible d'y inclure de la couleur. Cela fonctionne dans le terminal de Gnome et probablement dans beaucoup d'autres.

Dans une classe de modèle, ajouter une méthode qui va envoyer une chaîne au logger après y avoir inséré des codes de couleurs.

def _log(self, str):
    _logger.info(u"\u001b[31m%s\u001b[0m" % str)

Le code ci-dessous ajoute les codes d'échappement pour passer en rouge au début et revenir à la couleur normale ensuite.

De cette façon, nos messages de debug ressortent et sont plus facilement visibles.

Utiliser Print() ?

à tester…

erp/odoo12/logging_couleur.txt · Dernière modification: 2020/09/19 07:21 par marclebrun