A blog about data, information and IT, by Mario Alberich

Nov 28
2013

Magento: métodos factoría para logging y modo de desarrollo

Logging y reportado de excepciones


Como en todas las aplicaciones del mismo nivel, Magento integra métodos para generar logs, tanto textuales como de objetos de excepciones.

Mage::log($msg, $level = null, $file = '', $forceLog = false)

El método log es de largo el más utilizado de todos. El funcionamiento es sencillo y más que suficiente la mayoría de las veces, porque permite:

  • Definir el nivel del mensaje con $level (puedes utilizar las constantes LOG_DEBUG, LOG_INFO, LOG_ERR).
  • Establecer un archivo específico para ese log (en caso contrario, se utiliza system.log, o el archivo indicado en la configuración, en el apartado "Developer").
  • Forzar la generación del log aunque los logs estén desactivados y no estemos en Developer Mode.


Para la gestión de las excepciones tenemos tres aproximaciones distintas:

  • Mage::logException envía la excepción a un archivo de log (exception.log por defecto pero puede modificarse el archivo desde la configuración de Magento).
  • Mage::printException Si estamos en modo desarrollador, imprime la excepción por pantalla. En caso contrario, genera un archivo de report en el directorio de Magento /var/reports, mientras muestra en pantalla el mensaje con el código de report.
  • Mage::throwException lanza la excepción (ejecuta throw) y delega el efecto de la operación en el resto de PHP. También es posible guardar el mensaje en un messageStorage, para poderlo mostrar en el frontend.

Modo desarrollo


Ejecutar Magento en modo desarrollo permite detectar fragmentos de código que técnicamente puedan ser correctos (es decir, funcionan), pero que pueden ser proclives a provocar errores. Tienes una buena explicación del origen y los motivos de esta funcionalidad en el artículo de Alan Storm sobre la gestión del developer mode.

Para el caso, el argumento mode es un valor booleano (o equivalente: 0 y 1 también son válidos) para definir si la aplicación se ejecutará en modo desarrollador o no.

  • Mage::setIsDeveloperMode($mode)
  • Mage::getIsDeveloperMode($mode)

Tags

gestión documental 10     Recuperación información 11     Linux 7     Usabilidad 5     open source 3     Tagging 12     lógica borrosa 2     fuentes de información 12     Google 6     off-topic 6     spam 2     grafos 6     Web social 11     modelización 12     Productividad 11     buscadores 2     utilidades 17     Profesionales 9     SEO 5     estándares 3     veracidad 3     relevancia 2     lingüística 2     PLN 2     lenguajes documentales 2     apis-mashups 3     reseñas 7     Flash 7     Gráficos estadísticos 13     Publicidad 3     Innovación 5     muestreo estadístico 9     PHP 14     internet 2     testeo 12     desarrollo 3     visualizacion 36     javascript 16     datos abiertos 9     elecciones 2     simulación 5     html5 7     phing 9     ssh 2     seguridad 3     indicadores 2     demografía 3     media 2     algoritmos 7     shell 4     mysql 2     backup 2     big data 6     twitter 2     d3js 11     revealjs 2     metodología 6     data-journalism 6     smartcities 2     NYT 2     privacidad 3     benchmarking 4     recopilaciones 21     magento 5     formacion 2     github 2     HHVM 3     psicología 2     angularjs 3     grep 2     nodejs 5     promises 2     mapreduce 3     crossfilter 2     exploración de datos 2     machine learning 2    

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.