Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как делать логи работы + ... и включать версию при компиляции 
:(
    Опции темы
h2o
Дата 3.4.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: 1
Всего: 1



Может знает кто как делают логи работы своей программы? Может для этого компоненты или готовые примеры есть? На этапе отладки программы хочется както отследить в каких строках или процедурах идут ошибки. писать в свой лог-фаил после каждой строки - это извращенство.

И ещё. Как компилируют проги с номером билда? обычно фаил таких программ называется -моя_прога_1.22.233.ехе
Но мне бы лучше не так, а например, в свойствах файлов некоторых есть вкладка ВЕРСИЯ. дак вот чтоб данные о версии там изменялись. Да и вообще как эту вкладку добавить в свой ехе файл?
Мне нужно чтобы номер версии увеличивался на 1 после каждого компилирования.

Как такое делают?

З.ы. плз, если будут ответы, то можно с кусочком примера




Это сообщение отредактировал(а) h2o - 3.4.2008, 11:20
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
Wolfgan
Дата 3.4.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.3.2008

Репутация: нет
Всего: нет



Есть системы контроля версий если я тебя правильно понял. Вот тебе туда надо посмотреть. StarTeam вроде в комплекте с дельфой идет 
PM MAIL   Вверх
ama_kid
Дата 3.4.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



Цитата(h2o @  3.4.2008,  10:50 Найти цитируемый пост)
И ещё. Как компилируют проги с номером билда? обычно фаил таких программ называется -моя_прога_1.22.233.ехе
Но мне бы лучше не так, а например, в свойствах файлов некоторых есть вкладка ВЕРСИЯ. дак вот чтоб данные о версии там изменялись. Да и вообще как эту вкладку добавить в свой ехе файл?
Мне нужно чтобы номер версии увеличивался на 1 после каждого компилирования.
Project Options->Version Info->Include Version information in project->Auto-increment build number думаю поможет
Цитата(h2o @  3.4.2008,  10:50 Найти цитируемый пост)
Может знает кто как делают логи работы своей программы?
Я писал для этого свой класс
Цитата(h2o @  3.4.2008,  10:50 Найти цитируемый пост)
писать в свой лог-фаил после каждой строки - это извращенство.
Если кто-нить разработает прибамбас, который будет адаптироваться к условиям именно твоей программы и выдавать соответствующие вразумительные и понятные сообщения - думаю, его будут носить на руках smile 



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
EvilsInterrupt
Дата 3.4.2008, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 3
Всего: 9



ama_kid, 
Начем твой метод логирования основан ? на тупом WriteFile ? или на мэппированных файлах ? Может даш сорец, гляну, может чего улучшить смогу )
PM MAIL WWW ICQ Jabber   Вверх
ama_kid
Дата 3.4.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



EvilsInterrupt, именно на "тупом WriteFile", т.к. изобретать велосипед с четырьмя колесами не имею никакого желания, для меня логирование - это лишь вспомогательная функция, которая "работает - и ладно". 
Цитата(EvilsInterrupt @  3.4.2008,  11:53 Найти цитируемый пост)
Может даш сорец, гляну, может чего улучшить смогу ) 
Да за ради бога, гляди, тем более поле для улучшений там непаханное (более того - улучшения обязательны, просто руки не доходили smile). Я уже даже не помню точно, все ли там работало или нет smile 
Код
unit unLogger;
interface
uses
 SvcMgr;
const
 txIdentifier = 'AnalogIn';
type
 TLogger = object
  public
    sLastMessage        : string;
    SysEventLogger      : TEventLogger;
    constructor Create(FName: string);  overload;
    constructor Create(FMode: boolean; FName:string);  overload;
    destructor Destroy;
    procedure WriteMessage; overload;                   // Записывает сообщение sLastMessage
    procedure WriteMessage(Msg:string); overload;       // Записывает кастомное сообщение
    procedure WriteMessageBeep(Msg:string);
    procedure SetWriteMode(FMode:boolean);              // меняет режим записи в лог
    procedure SetIdentifier(sID:string);
    procedure SwitchLogOnOff(fl:boolean);
  private
    fFile               : text;
    flMode              : boolean;                      //True - режим постоянной записи, False - режим однократной записи
    LoggerFileName      : string;
    FileAccessed        : boolean;
    sIdentifier         : string;
    flStopLog           : boolean;
    procedure AccessFile;
    procedure DenieFile;
 end;

procedure InitLogger(NameOfFile:string);

var
 Logger                 : TLogger;
 LoggerFile             : string;


implementation

uses SysUtils, Dialogs, Windows;

{ TLogger }

procedure TLogger.AccessFile;
begin
 if FileAccessed then Exit;
 AssignFile(fFile,Self.LoggerFileName);
 try
  Append(fFile);
 except
  Rewrite(fFile);
 end;
 FileAccessed:=True;
end;

procedure TLogger.DenieFile;
begin
 try
  CloseFile(fFile);
 except
 end;
 FileAccessed:=False;
end;

constructor TLogger.Create(FName: string);
begin
 flMode :=False;
 sIdentifier := txIdentifier;
 LoggerFileName:=FName;
 flStopLog:=false;
 SysEventLogger.Create(txIdentifier);
end;

constructor TLogger.Create(FMode: boolean; FName: string);
begin
 Self.flMode :=FMode;
 sIdentifier := txIdentifier;
 LoggerFileName:=FName;
 if flMode then AccessFile;
 flStopLog:=false;
 SysEventLogger:= TEventLogger.Create(txIdentifier);
end;

destructor TLogger.Destroy;
begin
 inherited;
 SysEventLogger.Free;
 sIdentifier:=txIdentifier;
 DenieFile;
end;

procedure TLogger.WriteMessage;
begin
 if flStopLog then exit;
 if not FileAccessed then
  if not flMode then AccessFile
  else Exit;
 Writeln(fFile,sIdentifier + ': ' + sLastMessage);
 SysEventLogger.LogMessage(sLastMessage,EVENTLOG_WARNING_TYPE);
 if not flMode then DenieFile;
end;

procedure TLogger.WriteMessage(Msg:string);
begin
 if flStopLog then exit;
 if not FileAccessed then
  if not flMode then AccessFile
  else Exit;
 sLastMessage:=TimeToStr(Now)+ ': ';
 sLastMessage:=sLastMessage + Msg;
 Writeln(fFile,sIdentifier + ': ' + sLastMessage);
 SysEventLogger.LogMessage(Msg,EVENTLOG_WARNING_TYPE);
 if not flMode then DenieFile;
end;

procedure TLogger.WriteMessageBeep(Msg: string);
begin
 Windows.Beep(700,350);
 Self.WriteMessage(Msg);
end;

procedure TLogger.SetWriteMode(FMode: boolean);
begin
 if FMode=flMode then exit;
 DenieFile;
 flMode:=FMode;
 if flMode then AccessFile;
end;

procedure TLogger.SetIdentifier(sID: string);
begin
 if sID='' then exit;
 sIdentifier := sID;
end;

procedure TLogger.SwitchLogOnOff(fl:boolean);
begin
 flStopLog := not fl;
end;

procedure InitLogger(NameOfFile:string);
begin
 LoggerFile:=NameOfFile;
 if LoggerFile <> '' then
  try
   Logger.Create(false, LoggerFile);
  except
   Logger.Create(false, 'C:\RTS_Debug.txt');
  end
 else Logger.Create(false, 'C:\RTS_Debug.txt');
end;

initialization
finalization
 Logger.Destroy;
end.



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Rodman
Дата 3.4.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



PM MAIL WWW Skype GTalk YIM MSN   Вверх
h2o
Дата 3.4.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: 1
Всего: 1



с логами ясно!

а как быть с версией файла?
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
Alexeis
Дата 3.4.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(h2o @  3.4.2008,  12:40 Найти цитируемый пост)
с логами ясно!

а как быть с версией файла?

  
Создать новую тему, и не мешать в кучу несвязные вещи.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
former
Дата 3.4.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Вот, нашёл кое-что по log-ам.

Оказывается он уже есть. Rodman дал ссылку.  smile 



Это сообщение отредактировал(а) former - 3.4.2008, 17:35

Присоединённый файл ( Кол-во скачиваний: 20 )
Присоединённый файл  Log.rar 6,60 Kb


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Poseidon
Дата 3.4.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(h2o @  3.4.2008,  13:40 Найти цитируемый пост)
с логами ясно!

а как быть с версией файла? 

Цитата(ama_kid @  3.4.2008,  11:44 Найти цитируемый пост)
Project Options->Version Info->Include Version information in project->Auto-increment build 




--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Riply
Дата 3.4.2008, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 3
Всего: 32



Цитата(ama_kid @  3.4.2008,  12:20 Найти цитируемый пост)
для меня логирование - это лишь вспомогательная функция, которая "работает - и ладно


Лог сродни черному ящику в самолете. 
Он должен быть максимально надежен,
чтобы суметь передать последний крик твоей программы 
перед страшной смертью на чужом компьютере:  
"Дорогой ! Я споткнулась на этом ! Не повтори ошибку и не поминай меня лихом"  smile 

PM MAIL   Вверх
h2o
Дата 4.4.2008, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: 1
Всего: 1



Цитата(Poseidon @ 3.4.2008,  17:40)
Цитата(h2o @  3.4.2008,  13:40 Найти цитируемый пост)
с логами ясно!

а как быть с версией файла? 

Цитата(ama_kid @  3.4.2008,  11:44 Найти цитируемый пост)
Project Options->Version Info->Include Version information in project->Auto-increment build 

вот же я слепой! спасибо!

Добавлено через 5 минут и 12 секунд
Цитата(former @ 3.4.2008,  17:32)
Вот, нашёл кое-что по log-ам.

Оказывается он уже есть. Rodman дал ссылку.  smile

Я попробовал, но в логе только строки: запуск прогаммы, время, версия ОС... и всё. больше в лог ничего не попадает. Программа дает сбои - а в логе пусто!
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
Rennigth
Дата 4.4.2008, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



h2o, TD32 debug information включена?


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
dumb
Дата 4.4.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



Цитата(h2o @  4.4.2008,  09:34 Найти цитируемый пост)
Программа дает сбои - а в логе пусто!
да, с формулировками вопросов у тебя явные проблемы. видимо, тебе нужно что-то в этом роде
PM MAIL   Вверх
h2o
Дата 4.4.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: 1
Всего: 1



dumb  да нет проблем никаких.
У меня просто такая ситуация, что приложение под дебугом в Д2007 не запустить, поэтому единственный вариант поиска ошибок - логи работы проги. Точнее это сервис. Может я конечно и не знаю чего, но мне не удалось запустить сервис на отладку из под Д2007. Поэтому после компиляции я его запускаю, смотрю логи, точнее по записи в логе я определяю до какого момента(процедуры или строчки) сервис работал, после чего заново переписываю куски кода где по моему мнению могла быть ошибка. Я уже так весь сервис отладил, и вот на финишной прямой у меня стопор, где ничё мне не помогает! Вылезает сообщение как в ссылке что ты указал
Код

Access violation at address 00429A72 in module 'Project1.exe'. Read of address 00000041


Rennigth  не знаю, включено ли... а это для асLog нужно включить или вообще?
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0648 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.