Delphi'de bir proje çalışıyorum ve uygulama için bir yükleyici oluşturuyorum, üç ana bölüm var.
- PostgreSQL kurulum / kaldırma
- myapplication ( myapplication kurulumu nsi kullanılarak oluşturulur) yükleme / kaldırma.
- Komut dosyası aracılığıyla Postgres'de tablo oluşturma (toplu iş dosyaları).
Her şey düzgün ve sorunsuz çalışır, ancak bir şey başarısız olursa, LogToFileger'ı oluşturdum ki bu işlemin her adımında LogToFile
bu şekilde
LogToFileToFile.LogToFile('[DatabaseInstallation] : [ACTION]:Postgres installation started');
Bu işlev LogToFileToFile.LogToFile()
, içeriği bir dosyaya yazacaktır. Bu güzel çalışıyor, ama sorun, kodun her yerde kod çağrısı her yerde görmek gibi kodu okumak zor oldu gibi kod berbat olmasıdırLogToFileToFile.LogToFile()
Bir örnek
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;
Gördüğünüz gibi, çok sayıda LogToFileToFile.LogToFile()
çağrı var, daha
önce
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)
Şimdi tüm kodumda durum böyle.
okumak zor.
herhangi biri bana LogToFile çağrıları karmaşa için güzel bir yol önerebilir?
sevmek
'LogToFileToFile.LogToFile () `çağrısını
bu şekilde girintilemekif 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;
Bunun gibi ayrı bir birim
LogToFileger
Bu birimin tüm LogToFile iletileri bunaswitch case
benzerFunction 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;
bu yüzden sadece gerektiği yerde LogToFilegingMyMessage (1) çağırabilirim.
Herkes bana bu şekilde LogToFileging için daha iyi ve daha temiz bir yaklaşım söyleyebilir?
logBook.log()
karşılaşıldığı gibi okumak biraz zor .