Tôi đang làm việc với một dự án trong delphi và tôi đang tạo một trình cài đặt cho ứng dụng, có ba phần chính.
- Cài đặt / gỡ cài đặt PostgreSQL
- myapplication (thiết lập myapplication được tạo bằng nsi) cài đặt / gỡ cài đặt.
- Tạo bảng trong Postgres thông qua tập lệnh (tệp bó).
Mọi thứ đều chạy tốt và trơn tru, nhưng nếu có lỗi, tôi đã tạo một LogToF đặc biệt sẽ LogToFile mỗi bước của quy trình,
như thế này
LogToFileToFile.LogToFile('[DatabaseInstallation] : [ACTION]:Postgres installation started');
Các chức năng LogToFileToFile.LogToFile()
này sẽ ghi nội dung vào một tập tin. Điều này đang hoạt động tốt, nhưng vấn đề là điều này đã làm rối mã vì trong đó việc đọc mã trở nên khó khăn vì một ca chỉ nhìn thấy LogToFileToFile.LogToFile()
hàm gọi ở mọi nơi trong mã
một ví dụ
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;
như bạn có thể thấy có rất nhiều LogToFileToFile.LogToFile()
cuộc gọi,
trước đó là
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)
đây là trường hợp trong toàn bộ mã của tôi bây giờ
nó khó đọc
có ai có thể gợi ý cho tôi một cách hay để giải nén các cuộc gọi tới LogToFile không?
giống
Thụt vào cuộc gọi 'LogToFileToFile.LogToFile () `
như thế nàyif 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;
Đơn vị riêng biệt như
LogToFileger
Đơn vị này sẽ có tất cả các thông điệp LogToFileswitch case
giống như thế nàyFunction 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;
vì vậy tôi chỉ có thể gọi LogToFilegingMyMessage (1) nếu cần.
Ai đó có thể cho tôi biết cách tiếp cận nào tốt hơn và rõ ràng hơn đối với LogToFileging theo cách này không?
logBook.log()
đều gặp phải.