Os explicamos en qué consiste EurekaLog y cómo usarlo para mostrar una captura de errores personalizada y profesional al usuario de nuestras aplicaciones. Todos aquellos errores no capturados por los desarrolladores serán capturados y mostrados de forma profesional por EurekaLog. Esta aplicación está disponible para lenguajes de programación Visual Studio .Net y Delphi.

EurekaLog para captura de errores en lenguajes de programación

Para todos aquellos desarrolladores de software que utilicen como lenguaje de programación alguna versión de Delphi o alguna versión de Visual Studio .Net, tienen disponible la herramienta EurekaLog. Se trata de una utilidad que una vez instalada en Delphi o Visual Studio .Net, realiza una captura de todos aquellos errores que se puedan producir en nuestras aplicaciones y que no hayan sido capturados expresamente por código.

Este sistema es muy versátil y personalizable, permite, entre otras cosas:

  • Enviar el error en formato efl, propio de EurekaLog, consultable por su propio visualizador EurekaLog Viewer. EurekaLog enviará un fichero con información completa sobre el error (módulos, procesos, datos del equipo, excepción, ensamblado, información pila CPU, etc.).
  • Permite enviar la información del error mediante email (cliente, servidor), mediante HTTP, HTTPS, compatible con BugZilla, FogBugz, Mantis).
  • Permite enviar los datos obtenidos del error en fichero comprimido y protegerlo con contraseña.
  • Permite enviar captura de pantalla junto con los datos del error.
  • Guarda en un fichero de log los errores que se van produciendo.
  • Permite personalizar el tipo de error: MS Classic (mostrará una ventana parecida a la de error de Windows), MessageBox (muestra un mensaje normal), EurekaLog (ventana al estilo EurekaLog). Por supuesto permite mostrar u ocultar las distintas opciones de envío de error, dirección web de soporte, adjuntar captura de pantalla, copiar al portapapeles, mostrar botón de detalles, etc.
  • Permite traducir todos los mensajes a cualquier idioma.
  • Permite filtrar por tipo de error, para mostrar sólo aquellos errores que nos interese.
  • Permite seleccionar qué información se le mostrará al usuario: DLLs, BPLs, Borland Threads, Windows Threads, Procesos de Windows, Pila de CPU, Módulos del lenguaje de programación donde se produce el error, etc.

Sin duda se trata de la herramienta de captura de errores más detallada y profesional que existe, el único inconveniente es que es de pago. Pero merece la pena mencionarla pues cuesta unos 120 euros para una licencia de un desarrollador.

Instalar EurekaLog para Borland o Codegear Delphi

Descargaremos la versión de prueba (trial) que expirará en 30 días o bien la versión adquirida previo pago de la licencia correspondiente desde la URL:

http://www.eurekalog.com/downloads_delphi.php [[[[Ya no está disponible]]]]

Para la versión de prueba, descargaremos el fichero EurekaLog6-Trial.exe de 19MB de tamaño. Una vez descargado, lo ejecutaremos (si tenemos Delphi abierto, lo cerraremos antes de iniciar la instalación). Se iniciará el asistente de instalación de EurekaLog, pulsaremos «Next»:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

Leeremos los términos de licencia, si estamos de acuerdo marcaremos «I accept the agreement» y pulsaremos «Next»:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

Seleccionaremos la carpeta de instalación de EurekaLog, pulsaremos «Next»:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

El asistente de instalación de EurekaLog detectará los lenguajes de programación instalados para los que es compatible, marcaremos los lenguajes en los que deseemos que se instale, en nuestro caso Borland Delphi 6:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

A continuación nos mostrará unas ventanas indicando cómo se mostrará EurekaLog en Borland Delphi 6 (en el menú «Proyect» – «EurekaLog Options»:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

En la paleta de componentes, en la pestaña «EurekaLog»:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

Por último nos indicará que en la subcarpeta Demos de la carpeta de instalación de EurekaLog existen varios ejemplos de uso de esta herramienta:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

Para finalizar nos permitirá ver un video tutorial marcando «See the EurekaLog Video Tutorial». También nos permitirá activar EurekaLog por defecto para todos los proyectos que creemos en Delphi, para ello marcaremos «Activate by default EurekaLog on all projects»:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

Al abrir Borland Delphi 6 nos mostrará un aviso indicando que la versión es de prueba (si no hemos adquirido el producto):

Instalar y configurar EurekaLog para Borland o Codegear Delphi

Y ya podremos usarlo, configurarlo desde «Project» – «EurekaLog Options»:

Instalar y configurar EurekaLog para Borland o Codegear Delphi

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Abriremos Delphi y abriremos la aplicación en la que queramos configurar EurekaLog (se puede configurar para todas las aplicaciones). Desde el menú «Project» seleccionaremos «EurekaLog Options»:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

En «Email & Web send»: desde esta pestaña podremos configurar el tipo de envío del error cuando se produzca (Email Client, SMTP Client, SMTP Server), también podremos activar el modo de envío por HTTP, HTTPS, FTP, BugZilla, FogBugz, Mantis, etc. Desde esta ventana configuraremos las opciones necesarias. En nuestro caso hemos probado la opción «SMTP Client», le indicamos el servidor SMTP, el usuario, la contraseña y el Email de destino y funciona perfectamente:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Este es el Email que llega, con la captura de pantalla y el fichero zip con los datos del error recopilados por EurekaLog:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Desde la pestaña «Send Options» podremos elegir las opciones de envío de los ficheros de información del error recopilados por EurekaLog. Podremos personalizar las siguientes opciones:

  • Show the send dialog: ocultar o mostrar el mensaje de envío de los datos del error.
  • Show success/failure msg.: mostrar al usuario el resultado del envío del mensaje de error.
  • Send entire Log file: enviará todo el fichero de log guardado (histórico).
  • Send an XML Log’s copy: enviar también en formato XML.
  • Send a screenshot: permite enviar una captura de pantalla del equipo del usuario en el momento del envío.

También es posible añadir seguridad al fichero zip enviado protegiéndolo con una contraseña:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Desde «Log File» podremos configurar y personalizar el contenido del fichero de log, la ubicación, el número máximo de errores que se guardará, no guardar errores duplicados, guardar el nombre del equipo, guardar el ensamblado y la pila de CPU, guardar los módulos y los procesos, etc.:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Desde «Exception Dialogs» podremos indicar el tipo de mensaje que se mostrará al producirse un error:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

En la ventana anterior, en «Dialog Type», podremos seleccionar y configurar las opciones:

  • MS Classic: se mostrará un mensaje de error como el siguiente, muy parecido al de Windows XP:
Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional
  • MessageBox: mostrará un mensaje normal (el que se mostraría sin EurekaLog), aunque si hemos indicado que se envíen los datos del error, una vez que se pulse «Aceptar» se enviarán estos datos por el método elegido:
Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional
  • EurekaLog: es el más completo y más configurable, mostrará un mensaje como el siguiente:
Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Pulsando en «Detalles» podremos ver todos los detalles del error: General (datos de la aplicación, datos del equipo, datos del error, etc.), Pila de llamadas (proceso, módulo, unidad, clase, procedimiento/método, línea, etc. Esta pestaña tal vez sea la más importante para el desarrollador pues muestra toda la información del error, la unidad y la línea de código donde se produce), Módulos y Procesos. Desde la ventana de «Detalles», si así lo hemos configurado, podremos enviar el informe del error, ir a la página web de soporte, adjuntar la captura de pantalla, copiarlo al portapapeles, etc.:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Desde «Messages Texts» podremos traducir todos los textos que aparecen en la ventana de captura del error de EurekaLog al idioma que queramos:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Desde «Exception Filters» podremos añadir qué acción personalizada realizar según el tipo de excepción que se produzca, esta pestaña es muy interesante para configurar si queremos que la aplicación muestre un tipo de ventana u otro o incluso que no haga nada según el tipo de excepción. Para ello pulsaremos en «Add»:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Introduciremos las siguientes opciones:

  • Class: la clase para la que mostraremos o no el tipo de ventana personalizado.
  • Handler: tipo de manejador (RTL ó EurekaLog).
  • Type: podremos seleccionar All, Handled, Unhandled.
  • Message: si lo dejamos en blanco mostrará el mensaje original del error seleccionado, sino mostrará el que introduzcamos.
  • Dialog: el tipo de diálogo que se mostrará: MS Classic, Unchanged, MessageBox, EurekaLog.
  • Action: Terminate o Restart.
Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Desde «Advanced Options» podremos elegir y personalizar multitud de opciones: comprimir con zip el fichero a enviar, mostrar funciones DLL, mostrar funciones BPL, no guardar el nombre de las clases/procedimientos, activar Anti-Freeze, encriptar con contraseña, etc.:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Desde «Build Options»: desde aquí podremos indicar qué comando se ejecutará antes de compilar, cuando se ha compilado y si se produce un error de compilación):

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Además, EurekaLog permite añadir un componente no visual a las aplicaciones (no es obligatorio), desde la pestaña «EurekaLog» que permitirá al desarrollador realizar tareas específicas según los eventos que se produzcan:

  • OnAttachedFilesRequest.
  • OnCustomButtonClickNotify.
  • OnCustomDataRequest.
  • OnCustomWebFieldsRequest.
  • OnExceptionActionNotify.
  • OnExceptionNotify.
  • OnHandleExceptionNotify.
  • OnPasswordRequest.
Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Desactivar el uso de EurekaLog para un proyecto Delphi

En el caso de que no queramos activar EurekaLog para algún proyecto, será suficiente con acceder a «Project» – «EurekaLog Options»:

Configuración de EurekaLog en Borland Delphi 6 para la captura de errores profesional

Conclusiones sobre EurekaLog

Sin duda, como podemos observar, se trata del sistema de captura de errores más avanzado y personalizable del mercado para Delphi y Visual Studio .Net. Es compatible con las versiones de los lenguajes de programación Visual Studio .Net y Delphi.

Si bien es de pago, es recomendable probarlo para decidir si merece la pena adquirir una licencia, pues sus ventajas son muchas de cara a la captura, mucha más elegante, de esos errores típicos de Delphi de «Violación de acceso…» o «Error abstracto…» u otros.

Según nuestra experiencia desarrollando aplicaciones con Delphi, este sistema de captura de errores no controlados por los desarrolladores es muy útil de cara a ofrecer una buena imagen para el cliente (el usuario final). Podremos filtrar errores «extraños y desagradables» del tipo «Violación de acceso…» o «Error abstracto…» para que no aparezcan y en cambio nos llegue un email con todos los datos del error para su posterior depuración o mostrarlos al usuario de forma más agradable mostrando otro mensaje.

El inconveniente lógico es que es de pago, una pena. El otro inconveniente que hay que tener en cuenta es que cuando activamos EurekaLog para un proyecto Delphi, puede incrementar el tamaño del ejecutable en unos 340 kb, según las pruebas realizadas en nuestro laboratorio.