next up previous contents index
Next: Životní cyklus PETu Up: Síťové funkce Previous: Komentovaný seznam síťových funkcí

Nástroje logování

 Vzhledem ke složitosti ladění multithreadových programů byl kladen důraz na řádné ladící mechanismy. Praxe říká, že nejlepší ladící prostředek je mohutné logování. Implementace všech logovacích funkcí je v souboru log.c

PET disponuje vlastní logovací funkcí:

void log_msg(int type, char *msg,...); 
 Parameter type určuje úroveň logování. Byly zvoleny čtyři základní logovací úrovně, tyto úrovně jsou definovány v log.h a představují následující:

LOG_MSG
- normální hlášky, které informují o základním chování PETu např. změna stavu PETu
LOG_ERROR
- chybové hlášky, které nejsou kritické pro běh PETu, např. neočekávané zavření socketu
LOG_FATAL
- fatální chybové hlášky, které způsobí ukončení PETu, např. chyby v alokaci paměti
LOG_DEBUG
- hlášky, které používají autoři k (základním) ladícím účelům
Tyto čtyři základní úrovně jsou snadno rozšiřitelné o další a tak si někteří autoři přidávali vlastní LOG_AUTOR úrovně. Samozřejmostí je možnost třídění těchto logovacích úrovní do různých souborů podle přání uživatele.

 Výše uvedená funkce má proměnný počet parametrů (podobně jako např. printf). Automaticky je k logovací informaci přidáno i časové razítko spolu s informací o čísle threadu, který hlášku vygeneroval. Tedy např.

15/05/2000-21:42:17 [1026] CFG: digest_mask set to *.cz *.com

15/05/2000-21:42:17 [1026] STAT: Initialized

15/05/2000-21:42:17 [1026] ADM: Parsing config

15/05/2000-21:42:17 [1026] Network: OK

 

Tato funkce je implementována jako reentrantní a tudíž ji thready mohou používat aniž by se musely starat o zámky.


next up previous contents index
Next: Životní cyklus PETu Up: Síťové funkce Previous: Komentovaný seznam síťových funkcí
Stanislav Pavlicek
2000-06-12