Next: Životní cyklus PETu
Up: Síťové funkce
Previous: Komentovaný seznam síťových funkcí
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: Životní cyklus PETu
Up: Síťové funkce
Previous: Komentovaný seznam síťových funkcí
Stanislav Pavlicek
2000-06-12