terça-feira, 25 de novembro de 2014

Gerando logs no Odoo


Quando temos nosso software em produção talvez uma das coisas mais difíceis é descobrir porque alguma rotina esta dando erro. Para resolver este problema é muito importante utilizar as opções que o software tem de log, e com o Odoo não é diferente.

Como já foi falado, as configurações do odoo ficam em um arquivo de configuração que deve ser indicado no momento da inicialização do programa. É este arquivo que mantém as informações sobre log, o odoo usa o o logging para efetuar o log de erros e informações, abaixo temos as opções de configuração:
  1. logfile: caminho completo do arquivo onde será salvo o log
  2. logrotate: True/False - Indica se deve criar um arquivo diariamente, mantém até 30 arquivos.
  3. syslog: True/False - Envia o log para syslog do sistema operacional.
  4. log_level: define uma lista de possíveis níveis de log: 'debug_rpc_answer', 'debug_rpc', 'debug', 'debug_sql', 'info', 'warn', 'error', 'critical'
  5. log_handler: Permite construções mais elaboradas, e logs por módulos. Ex: "openerp.orm:DEBUG" ou "werkzeug:CRITICAL", "account:ERROR"

Abaixo um exemplo de configuração onde apenas os erros serão salvos para o arquivo openerp.log

.


 No código podemos usar de maneira bem simples o logging para salvarmos qualquer tipo de informação ou erros:

import logging

_logger = logging.getLogger(__name__)

_logger.debug("debug message for debugging only")
_logger.info("information message to report important modular event")
_logger.warning("warning message to report minor issues")
_logger.error("error message to report failed operations")
_logger.critical("critical message -- so bad that the module cannot work")
_logger.error(str(exception))


3 comentários: