Показать сообщение отдельно
Старый 06.06.2007, 11:06   #7  
Evgeniy2020 is offline
Evgeniy2020
Участник
 
309 / 68 (3) ++++
Регистрация: 10.04.2007
Адрес: Москва, САО, СЗАО
Добрый день,

иногда когда нет возможности запустить для отладки дебаггер
тогда можно сэкономить время используя аналог info2file(strfmt(..),.. );
для Web -вывод стек трейса - может немного сэкономить время
этот код возможно будет работать только в 4-ке:

X++:
static server boolean stackTrace2File(anytype _string, str _mode = 'A',Filename _file = "")
{
    Filename         fileName = _file ? _file : xInfo::directory(DirectoryType::Config) + '..\\..\\log\\' + curuserid() + '-info2File.txt';
    str              toFile   = strFmt("%1 [%2] '%3'", systemdateget(), time2str(timenow(), 1, 1), _string) + '\n';
    FileIOPermission perm     = new FileIOPermission(fileName, _mode);
    container        stack    = xSession::xppCallStack();
    AsciiIo          file;

    str stackTraceStr(container stackTrace)
    {
        int i;
        str s = "";
        ;
        for(i = 1; i <= conLen(stackTrace); i += 2)
            s+=strFmt("%1:%2\r\n", conPeek(stackTrace, i), conPeek(stackTrace, i+1));
        return s;
    }

    ;
    perm.assert();
    file = new AsciiIO(fileName, _mode);
    if (file.status() == IO_Status::Ok)
    {
        file.write(toFile+'\r\n' + stackTraceStr(stack));
        return true;
    }
    return false;
}