====== 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 [[https://en.wikipedia.org/wiki/ANSI_escape_code|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...//