Я працюю над проектом у delphi, і я створюю інсталятор програми, є три основні частини.
- Встановлення / видалення PostgreSQL
- myapplication (установка myapplication створюється за допомогою nsi) встановлення / видалення.
- Створення таблиць у Postgres за допомогою скрипту (пакетні файли).
Кожна річ працює нормально, але якщо щось не вдається, я створив LogToFileger, який буде LogToFile кожен крок процесу,
як це
LogToFileToFile.LogToFile('[DatabaseInstallation] : [ACTION]:Postgres installation started');
Функція LogToFileToFile.LogToFile()
Це запише вміст у файл. Це добре працює, але проблема полягає в тому, що це зіпсувало код, оскільки в ньому стало важко читати код, оскільки один ca може бачити лише LogToFileToFile.LogToFile()
виклик функції скрізь у коді
приклад
if Not FileExists(SystemDrive+'\FileName.txt') then
begin
if CopyFile(PChar(FilePathBase+'FileName.txt'), PChar(SystemDrive+'\FileName.txt'), False) then
LogToFileToFile.LogToFile('[DatabaseInstallation] : copying FileName.txt to '+SystemDrive+'\ done')
else
LogToFileToFile.LogToFile('[DatabaseInstallation] : copying FileName.txt to '+SystemDrive+'\ Failed');
end;
if Not FileExists(SystemDrive+'\SecondFileName.txt') then
begin
if CopyFile(PChar(FilePathBase+'SecondFileName.txt'), PChar('c:\SecondFileName.txt'), False) then
LogToFileToFile.LogToFile('[DatabaseInstallation] : copying SecondFileName.txt to '+SystemDrive+'\ done')
else
LogToFileToFile.LogToFile('[DatabaseInstallation] : copying SecondFileName.txt to '+SystemDrive+'\ Failed');
end;
як ви бачите LogToFileToFile.LogToFile()
,
раніше було багато дзвінків
if Not FileExists(SystemDrive+'\FileName.txt') then
CopyFile(PChar(FilePathBase+'FileName.txt'), PChar(SystemDrive+'\FileName.txt'), False)
if Not FileExists(SystemDrive+'\SecondFileName.txt') then
CopyFile(PChar(FilePathBase+'SecondFileName.txt'), PChar('c:\SecondFileName.txt'), False)
це так у всьому моєму коді зараз.
її важко читати.
чи може хтось запропонувати мені гарний спосіб відключити виклики до LogToFile?
люблю
Відступ "LogToFileToFile.LogToFile ()" дзвінка
таким чиномif Not FileExists(SystemDrive+'\FileName.txt') then begin if CopyFile(PChar(FilePathBase+'FileName.txt'), PChar(SystemDrive+'\FileName.txt'), False) then {Far away--->>} LogToFileToFile.LogToFile(2,'[DatabaseInstallation] : [ACTION]:copying FileName.txt to '+SystemDrive+'\ sucessful') else {Far away--->>} LogToFileToFile.LogToFile(2,'[DatabaseInstallation] : [ACTION]:copying FileName.txt to '+SystemDrive+'\ Failed'); end;
Окремий блок, як-от
LogToFileger
Цей пристрій, матиме всі повідомлення LogToFileswitch case
таким чиномFunction LogToFilegingMyMessage(LogToFilegMessage : integer) begin case LogToFilegMessage of 1 : LogToFileToFile.LogToFile(2,'[DatabaseInstallation] : [ACTION]:copying FileName.txt to '+SystemDrive+'\ sucessful'); 2 : LogToFileToFile.LogToFile(2,'[DatabaseInstallation] : [ACTION]:copying FileName.txt to '+SystemDrive+'\ Failed'); 150 : LogToFileToFile.LogToFile(2,'[somthing] : [ACTION]: somthing important); end;
тому я можу просто зателефонувати до LogToFilegingMyMessage (1) там, де це потрібно.
Хто-небудь може сказати мені, який спосіб є кращим і чистішим для LogToFileging?
logBook.log()
зустрічається.