Discusión sobre el artículo "Gestión de errores y logging en MQL5"

 

Artículo publicado Gestión de errores y logging en MQL5:

Este artículo se centra en aspectos generales sobre el manejo de los errores de software. Explicaremos qué significa el término logging mediante algunos ejemplos implementados con herramientas de MQL5.

Durante la ejecución de los programas pueden suceder errores de vez en cuando. Gestionarlos bien contribuye a mejorar la calidad del programa, y también hace que se pueda mantener más fácilmente. Este artículo explica varios métodos de gestión de errores, proporciona algunas recomendaciones, y enseña a utilizar la herramienta de logging de MQL5.

El tema de la gestión de los errores es relativamente complicado y controvertido. Hay muchas formas de arreglar los errores, cada una de las cuales tiene sus ventajas y sus inconvenientes. Algunos de estos métodos pueden utilizarse juntos; no hay ninguna fórmula universal, cada tarea requiere una aproximación adecuada.

Logging con herramientas MQL5

Los programas suelen crear archivos de log que facilitan la vida a los programadores. Estos archivos contienen los errores generados para que los programadores puedan buscarlos y sean capaces de evaluar las condiciones del sistema en un momento determinado. Además de todo esto, el logging también sirve para analizar el rendimiento del software (profiling).

Niveles de logging

Los mensajes generados en los archivos de log contienen mucha información y por tanto exigen diferentes niveles de atención. Los niveles de logging se aplican a los mensajes por separado para clasificarlos por niveles críticos; se puede personalizar el nivel de importancia de los mensajes. Normalmente se implementan varios niveles de logging:

  • Debug: mensajes de depuración. Este nivel de registro es para las etapas de desarrollo, depuración y puesta en marcha.
  • Info: mensajes informativos. Estos mensajes informativos registran la actividad del sistema, por ejemplo, el inicio/fin de una operación, la apertura/cierre de una orden, etc. No suelen requerir ninguna interacción pero ayudan a analizar las cadenas de eventos producidos, que derivan en los errores de las operaciones.
  • Warning: mensajes de advertencia. Este nivel describe las situaciones de error que no requieren intervención por parte del usuario. Por ejemplo, si una cantidad determinada es menor que el mínimo, y el programa la corrige automáticamente, esto se puede registrar en el log con el nivel «Warning».
  • Error: mensajes de error que requieren intervención. Este nivel de logging se utiliza típicamente en errores relacionados con el almacenamiento de algún archivo, apertura, modificación, etc. En otras palabras, este nivel incluye aquellos errores que el programa no puede solucionar por sí mismo y, por lo tanto, requieren la intervención de una persona: el usuario o el programador.
  • Fatal: mensajes de error críticos que impiden que el programa pueda continuar operando. Estos mensajes se tienen que tratar instantáneamente. En este nivel suele enviarse alguna notificación vía email, o algún SMS, al usuario o al programador. Pronto le enseñaremos a utilizar las notificaciones PUSH en MQL5.
2015.09.23 09:02:10, USDCAD (D1), INFO: 
2015.09.23 09:02:10, USDCAD (D1), INFO: ---------- OnInit() -----------
2015.09.23 09:02:10, USDCAD (D1), DEBUG: Ejemplo de mensaje de depuración (LoggerTest.mq5; int OnInit(); Line: 36)
2015.09.23 09:02:10, USDCAD (D1), INFO: Ejemplo de mensaje de información (LoggerTest.mq5; int OnInit(); Line: 38)
2015.09.23 09:02:10, USDCAD (D1), WARNING: Ejemplo de mensaje de advertencia (LoggerTest.mq5; int OnInit(); Line: 40)
2015.09.23 09:02:10, USDCAD (D1), ERROR: Ejemplo de mensaje de error (LoggerTest.mq5; int OnInit(); Line: 42)
2015.09.23 09:02:10, USDCAD (D1), FATAL: Ejemplo de mensaje fatal (LoggerTest.mq5; int OnInit(); Line: 44)

Autor: Sergey Eremin

Razón de la queja: