По моему, все достаточно очевидно на примере
X++:
static void Job_Test(Args _args)
{
;
setprefix("test");
global::info("one \t two \t three");
print infolog.num();
print infolog.text(1);
pause;
}
Вся иерархия - это одна линия инфолога. Переход на уровни осуществляется символом табуляции. Определение уровня - это просто подсчет символов табцляции в линии инфолога