Una de las principales formas de diagnosticar fallas en el funcionamiento del software que ya se está ejecutando en la computadora del usuario es mantener registros de eventos: registros. Por lo general, registran información sobre los lanzamientos, así como información importante sobre el estado del proceso y el entorno del sistema en caso de una falla crítica. Puede crear registros tanto por sus propios medios como utilizando servicios especiales de sistemas operativos.
Es necesario
- - traductor del lenguaje de programación utilizado;
- - posiblemente un SDK de la plataforma de Windows;
- - posiblemente un paquete de desarrollo para glibc.
Instrucciones
Paso 1
Analizar los términos de uso y confeccionar los requisitos para el subsistema, componente o biblioteca desarrollado que hará logs. Responda las preguntas sobre en qué plataforma o plataformas debería operar, cuál será su API.
Paso 2
De acuerdo con las características de funcionamiento identificadas y la API proporcionada, cree una plantilla para el subsistema de registro. Comience a implementar su funcionalidad.
Paso 3
La opción más sencilla para el registro es crear archivos de forma independiente en una ubicación determinada por la configuración de la aplicación y luego escribirles datos en cualquier formato. Utilice funciones de biblioteca estándar de C (fopen, fclose, fwrite), objetos de flujo de biblioteca estándar de C ++ (ofstream), clases de marco usadas (como CFile, QFile) o funciones de API del sistema operativo (CreateFile, WriteFile en Windows).
Paso 4
Implemente el registro mediante la API syslog en sistemas operativos compatibles con UNIX. Las funciones de la API de syslog se declaran en el archivo de encabezado syslog.h. Conéctelo en el lugar correcto en el código fuente de su proyecto.
Paso 5
Conéctese al servicio syslog mediante la llamada a la función openlog. Como parámetros, pase un puntero a una cadena que contenga el identificador de la aplicación o componente que escribirá, banderas de opciones y una máscara de eventos que se pasarán al log. Utilice llamadas a las funciones syslog y vsyslog para agregar entradas al registro. Llame a la función closelog para desconectarse del servicio. Un ejemplo simple de código de syslog podría ser: openlog ("prefijo", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", "Aviso"); closelog (); Tiene sentido conectarse a syslog al inicializar la aplicación y desconectarse cuando se apaga.
Paso 6
En los sistemas operativos Windows, use la API EventLog para agregar entradas a los registros del sistema. Llame a RegisterEventSource para obtener el descriptor de registro en la máquina especificada. Utilice este identificador cuando llame a la función ReportEvent que escribe en el registro. Cuando termine, llame a DeregisterEventSource para cerrar la conexión y liberar los recursos asignados por RegisterEventSource. El ejemplo más simple de trabajar con EventLog podría ser: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); Al igual que con syslog, tiene sentido llamar a RegisterEventSource al inicio y DeregisterEventSource al cerrar la aplicación.