Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.13;
Скачать: CL | DM;

Вниз

Выгрузка сообщений об ошибках в текстовый файл   Найти похожие ветки 

 
grav ©   (2009-10-23 11:35) [0]

Гружу данные в базу. Хочу сообщения об ошибках выгружать в текстовый файл.
Создал список
ErrorList:= TStringList.Create;
и гружу в него
try
...
except
ErrorList.Append(...);
end;
ErrorList.SaveToFile("error.log");

В итоге в файле только последняя ошибка. Что не так делаю?
Спасибо!


 
brother ©   (2009-10-23 11:40) [1]

> ErrorList.Append(...);

это заменить а надо:
ErrorList.Add(...);


 
И. Павел ©   (2009-10-23 11:41) [2]

Элементарный код:
 SL:=TStringList.Create;
 SL.Clear;
 SL.Append("123");
 SL.Append("456");
 SL.SaveToFile("C:\str.txt");

пишет в файл две строки, так что ваша ошибка, наверное, в том коде, который вы заменили многоточием.


 
brother ©   (2009-10-23 11:42) [3]

> это заменить а надо:

читать как:
это если необходимо заменить, а тебе надо добавить


 
И. Павел ©   (2009-10-23 11:56) [4]

try
...
except
ErrorList.Append(...);
end;
ErrorList.SaveToFile("error.log");

Судя по коду, можно подумать что автор вызывает его несколько раз и ждет, чтобы очередной Save добавил строчки к предыдущему. Нужно сначала выполнить все Append/Add, а затем, в самом конце, вызвать SaveToFile.


 
grav ©   (2009-10-23 12:06) [5]


> И. Павел ©   (23.10.09 11:56) [4]

Вот таких  много
try
...
except
ErrorList.Append(...);
end;


Такая строчка одна в конце загрузки.
ErrorList.SaveToFile("error.log");

Точнее вот так:
try
...
except
ErrorList.Append(E.Message);
ErrorList.Assign(LoadQr.SQL);
end;


Может Assign виноват?


 
grav ©   (2009-10-23 12:35) [6]

точно, затирает все ErrorList.Assign.
буду текст запроса писать так
ErrorList.Add(LoadQr.SQL.text);
Вот только большие запросы наверное не получиться так записать


 
grav ©   (2009-10-23 13:50) [7]

Новая напасть. Out of Memory
Какой объем можно запихнуть в TStringList?


 
RWolf ©   (2009-10-23 13:57) [8]

ну, гигабайта два, полагаю (не проверял).


 
RWolf ©   (2009-10-23 13:58) [9]

вообще, что это за дикий способ ведения лога?


 
grav ©   (2009-10-23 14:02) [10]


> RWolf ©   (23.10.09 13:58) [9]

Научите пожалуйста как лог писать.
Грузятся в базу данные из XML файла, всего 45 таблиц.
После каждого insert пытаюсь выгрузить ошибки и sql запрос в файл.
Как правильно это реализовать?


 
RWolf ©   (2009-10-23 14:06) [11]

обсуждение: http://delphimaster.net/view/2-1255442299/


 
grav ©   (2009-10-23 15:04) [12]


> RWolf ©   (23.10.09 14:06) [11]

Спасибо за ссылку, изучаю. И действительно, чего мне сразу в файл не писалось.


 
Игорь Шевченко ©   (2009-10-23 15:12) [13]


> вообще, что это за дикий способ ведения лога?


Я бы не стал так категорично утверждать.

В ряде проектов я использую именно такой способ (заполнение TStrings), так как потом этот протокол можно перенаправить сразу в три места, на экран, в базу данных и в письмо с сообщением об ошибке.


 
RWolf ©   (2009-10-23 15:42) [14]


> Игорь Шевченко

Согласен, если контролировать размер списка и вовремя удалять старые записи — проблем нет.



Страницы: 1 вся ветка

Текущий архив: 2009.12.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
2-1256057370
Инна
2009-10-20 20:49
2009.12.13
GDI как "затенить" заданый прямоугольник ?


15-1255394936
brother
2009-10-13 04:48
2009.12.13
Посоветуйте программу для поиска в файлах по заголовкам


15-1255725008
Юрий
2009-10-17 00:30
2009.12.13
С днем рождения ! 17 октября 2009 суббота


2-1256189426
AndrewG
2009-10-22 09:30
2009.12.13
Hint


3-1231348460
TCrash
2009-01-07 20:14
2009.12.13
Получение полного имени поля