6. Desarrollando con Odoo (4). Manejando el Logger y Excepciones
1. Lanzar excepciones
Para lanzar excepciones hay que:
- Agregar las dependencias
- Utilizar el bloque try...catch
- Lanzar una excepcion RaiseXXXError
Veamos los trozos de código necesarios
from odoo import models, fields, api from odoo.exceptions import ValidationError from odoo import _ import datetime class task(models.Model): _name = 'ximoapp01.task' -------------- def _get_code(self): for record in self: try: record.code=record.name + str(record.id) except: raiseValidationError(_("Error de Ximo..."))
Observar tanto en el import como en la última sentencia, la fución subrayado "_"!!
2. Manejando el logger
Existen varios niveles de log: DEBUG, INFO, WARN, ERROR
Para manejar el logger hay que:
- Verificar/actualizar en el fichero odoo.conf la configuración del logger (establecer fichero y niveles de log (variables log_level, log_handler, logfile)
- Para testing hay que activar el modo desarrollador pero con "activos de prueba", en el caso que queramos mostrar los logs con el nivel "DEBUG"
- Importar la dependencia logging en "models.py"
- Configurar el logger en "models.py"
- Mostar información al logger con logger.debug o logger.info
Veamos el odoo.conf
[options] addons_path = /mnt/extra-addons data_dir = /var/lib/odoo csv_internal_sep = , logfile = /var/log/odoo/odoo-server.log log_handler = :INFO log_level = info
log_handler puede tomar otros valores como :DEBUG, y log_level indica el nivel mínimo a mostrar, que podríamos poner también a debug (pero solo se vería si tenemos modo desarrollador con activos de prueba.
Veamos los trozos de código necesarios para el fichero "models.py"
from odoo import models, fields, api from odoo.exceptions import ValidationError from odoo import _ import datetime import logging _logger = logging.getLogger(__name__) # Recoge la información del fichero "odoo.conf" class task(models.Model): _name = 'ximoapp01.task' -------------- def _get_code(self): for record in self: try: record.code=record.name + str(record.id) _logger.debug("Primer paso a ver si pasa por aquí...") except: raiseValidationError(_("Error de Ximo..."))
Vemos que hay que importar la dependencia, indicar al logger que fichero utilizar (en este caso el que se indica en la variable "logfile" del fichero "odoo.conf", y mostrar la información deseada utilizando _logger.debug, _logger.info, _logger.warning o _logger.exception
Comentarios
Publicar un comentario