Saya mengerjakan proyek dalam delphi dan saya membuat installer untuk aplikasi, ada Tiga bagian utama.
- Instalasi / penghapusan instalasi PostgreSQL
- myapplication (setup myapplication dibuat menggunakan instalasi / uninstall nsi).
- Membuat tabel di Postgres melalui skrip (file batch).
Setiap hal berjalan dengan baik dan lancar, tetapi jika sesuatu gagal saya telah membuat LogToFileger yang akan LogToFile setiap langkah proses,
seperti ini
LogToFileToFile.LogToFile('[DatabaseInstallation] : [ACTION]:Postgres installation started');
Fungsi LogToFileToFile.LogToFile()
Ini akan menulis konten ke file. Ini berfungsi dengan baik, tetapi masalahnya adalah ini telah mengacaukan kode karena di dalamnya menjadi sulit untuk membaca kode karena satu ca hanya melihat LogToFileToFile.LogToFile()
fungsi panggilan di mana-mana dalam kode
sebuah contoh
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;
seperti yang Anda lihat ada banyak LogToFileToFile.LogToFile()
panggilan,
sebelum itu
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)
ini adalah kasus di seluruh kode saya sekarang.
sulit dibaca.
adakah yang bisa menyarankan saya cara yang bagus untuk mengacaukan panggilan ke LogToFile?
Suka
Mengindentifikasi panggilan 'LogToFileToFile.LogToFile () `
seperti iniif 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;
Unit terpisah seperti Unit
LogToFileger
ini akan memiliki semua pesan LogToFile dalam bentukswitch case
seperti iniFunction 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;
jadi saya bisa memanggil LogToFilegingMyMessage (1) di mana pun diperlukan.
Adakah yang bisa memberi tahu saya mana yang merupakan pendekatan yang lebih baik dan lebih bersih untuk LogToFileging dengan cara ini?
logBook.log()
ditemui.