|  27.08.2007, 12:29 | #1 | 
| Участник | Как лучше всего вести лог? 
			
			Понадобилось, а не могу вспомнить. Вроде в Аксапте был класс, который позволял записывать произвольную строку в лог. Эта строка автоматически записывалась в текстовый файл в каталоге log. Не могу вспомнить какой. Не подскажете? Понятно, что можно создать таблицу и организовать запись в текстовый файл средствами AsciiIO или TextBuffer. Но хотелось бы использовать стандартное средство, такое, чтобы любому программисту сразу было бы понятно - это "запись в лог". | 
|  | 
|  27.08.2007, 12:30 | #2 | 
| Участник | 
			
			И еще. Про infolog знаю, но текстовых строк будет очень много. infolog сдохнет от такого количетсва.
		 | 
|  | 
|  27.08.2007, 13:05 | #3 | 
| Участник | 
			
			Я пользую такую процедурку X++: static server boolean ToFile(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'; AsciiIo file; ; file = new AsciiIO(fileName, 'A'); if (file.status() == IO_Status::Ok) { file.write(anytype + '\r\n'); return true; } return false; } | 
|  | 
|  27.08.2007, 13:20 | #4 | 
| Участник | 
			
			Если каждый раз открывать файл, то куча времени уйдет на открытие файла. В этом случае Log может существенно замедлить работу. нужо каким-то образом file handler держать в кэше... перехватывать crash, чтобы правильно закрыть файл... Поэтому хотелось бы что-нибудь системное. Ведь был же сарайчик... (С) Особенности национальной рыбалки | 
|  | 
|  27.08.2007, 13:27 | #5 | 
| Участник | 
			
			Не видел я такого. Даже трасировщик запросов SQL делает подобным образом вот здесь. X++: void outputFile(str message) { AsciiIo asciiIo = new AsciiIo(this.tracefile(),'a'); ; if (asciiIo) asciiIo.write(message); else warning(strFmt("@SYS65356",this.tracefile())); } | 
|  | |
| За это сообщение автора поблагодарили: mazzy (5). | |
|  27.08.2007, 13:29 | #6 | 
| Участник | 
			
			Возможность была в классе SysTrace, но там обычное открытие/закрытие файла для каждой записи
		 | 
|  | |
| За это сообщение автора поблагодарили: mazzy (5). | |
|  27.08.2007, 13:37 | #7 | 
| Участник | 
			
			SysTrace! Точно. Спасибо. Значит, открывают/закрывают файл каждый раз? Спасибо. Надо подумать. Может быть, я хочу странного? | 
|  | 
|  27.08.2007, 13:43 | #8 | 
| Участник | 
			
			Я думаю, что создание класса гораздо более ресурсоемкая операция, чем просто открытие файла.
		 | 
|  | 
|  27.08.2007, 13:54 | #9 | 
| Участник | 
			
			Ага. Вспомнил. Я разбирался с этой штукой. инициализация там непростая. Цитата: SysTrace - позволяет настраивать себя в Сервис\Параметры\SQL Глобальный инстанс этого класса создается ядром, насколько я помню. Вроде еще какой-то интерфейс был. | 
|  | 
|  27.08.2007, 13:56 | #10 | 
| Moderator | 
			
			В параметрах на закладке разработка есть "Ограничение на выдачу сообщений", себе обычно ставлю 10 000   
				__________________ С уважением, kvan. | 
|  | 
|  27.08.2007, 14:09 | #11 | 
| Участник | Цитата: Я хочу проанализировать работу одной процедуры пользователя, которая тормозит. Мне кажется, что один из параметров в этой процедуре постоянно меньше 1. Я хочу скидыать информацию об этом параметре куда нибудь в течение одного-двух дней, чтобы потом выполнить анализ... | 
|  | 
|  27.08.2007, 14:25 | #12 | 
| Участник | 
			
			Пока искал вспомнил о BMProcessLog. в Ax3.0 Пожалуй его и буду использовать, хотя он не в файл, а в таблицу пишет... Но ведь был же сарайчик... Как-то можно было текстовую строку в лог добавить... | 
|  | 
|  27.08.2007, 16:12 | #13 | 
| Участник | 
			
			Когда нужен был лог на постоянной основе (периодический импорт из внешней сиестемы иногда были проблемы, надо было, чтоб админы разбирались). Писали сообщения в таблицку из под отдельного соединения, группируя по событиям (табличка с фактами импорта и табличка с сообщениями протокола). Плюс был в том, что удобно было искать.
		 | 
|  |