Цитата:
Сообщение от
SergeySS
Подскажите как можно определить источник вызова метода.
Не касаясь остального, я пользую метод (тут кстати подсказали)
Положил его в Global и отлично. Можно переопределить, чтобы в БД писал.
X++:
static server boolean stackTrace2File(anytype _string, str _mode = 'A',Filename _file = "")
{
Filename fileName = 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, 'A');
if (file.status() == IO_Status::Ok)
{
file.write(toFile+'\r\n' + stackTraceStr(stack));
return true;
}
return false;
}