pDI-Tools: Mecanismo de interposición dinámica de código | ||
---|---|---|
Anterior | Capítulo 9. API de pDI-Tools | Siguiente |
Este módulo es un conjunto de funciones encargadas de emitir los distintos mensajes de error, advertencias, sucesos ("log") o mensajes de depuración de un modo sencillo y uniforme.
#defineLOG_LEVEL_ERROR
0 #defineLOG_LEVEL_WARNING
1 #defineLOG_LEVEL_LOG
2 #defineLOG_LEVEL_DEBUG
3
Descripción. Son constantes que identifican a cada nivel de "log" posible. Cuanto más alto es el número que identifican, menos alta es su prioridad.
#define THIS
(char *) __FILE__, (char *) __FUNCTION__
Descripción.
Esta constante es muy útil ya que si se puede usar en lugar de
los parámetros fichero
y
funcion
, y de esta forma ahorrarse muchos
errores debidos al "copy'n'paste" y facilitando la escritura de los
mensajes de "log".
Seguidamente se muestra un ejemplo de como usarlo:
#include"backend.h" #include"log.h" int fputc_wrapper(int c) { _pdi_log("backend.so", "putchar_wrapper", "putchar escribe '%c'.", c); return c; } int fputs_wrapper(char *s, FILE *f) { _pdi_log(THIS, "fputs escribe '%s'.", s); return 0; }
Las dos indican el fichero al que pertenecen y la función desde donde se imprime el mensaje, sólo que la segunda es más resistente a cambios y más corta.
Descripción.
En este grupo de funciones imprimen todas un mensaje de "log".
Sólo les diferencia el nivel de "log" en que cada una imprime el
mensaje. En orden respectivo: LOG_LEVEL_DEBUG
, LOG_LEVEL_LOG
,
LOG_LEVEL_WARNING
y LOG_LEVEL_ERROR
.
Parámetros.
fichero
.
Nombre del fichero con que relacionamos el mensaje de
"log", aunque puede ser cualquier otra cosa o NULL
en
caso de no querer mostrar este campo.
funcion
.
Nombre de la función con que relacionamos el mensaje de
"log", aunque puede ser cualquier otra cosa o NULL
en
caso de no querer mostrar este campo.
formato
.
Cadena de formato en la que intervendrán los parámetros
siguientes.
...
Lista de parámetros variable. Depende del parámetro
formato
.
Valor devuelto. Estas funciones no devuelven nada.
Descripción. Esta función imprime un mensaje de "log" en el nivel que se le indique. Es útil cuando la importancia de un mensaje de "log" puede variar en tiempo de ejecución.
Parámetros.
nivel
.
Categoría del mensaje de error. Puede valer
LOG_LEVEL_DEBUG
, LOG_LEVEL_LOG
, LOG_LEVEL_WARNING
o
LOG_LEVEL_ERROR
.
fichero
.
Nombre del fichero con que relacionamos el mensaje de
"log", aunque puede ser cualquier otra cosa o NULL
en
caso de no querer mostrar este campo.
funcion
.
Nombre de la función con que relacionamos el mensaje de
"log", aunque puede ser cualquier otra cosa o NULL
en
caso de no querer mostrar este campo.
formato
.
Cadena de formato en la que intervendrán los parámetros
siguientes.
...
Lista de parámetros variable. Depende del parámetro
formato
.
Valor devuelto. Esta función no devuelve nada.