ฉันกำลังทำงานโครงการในเดลฟายและฉันกำลังสร้างตัวติดตั้งสำหรับแอปพลิเคชันมีสามส่วนหลัก
- การติดตั้ง / ถอนการติดตั้งPostgreSQL
- myapplication (การตั้งค่า myapplication ถูกสร้างขึ้นโดยใช้ nsi) การติดตั้ง / ถอนการติดตั้ง
- การสร้างตารางใน Postgres ผ่านสคริปต์ (แบตช์ไฟล์)
ทุกสิ่งทำงานได้อย่างราบรื่นและราบรื่น แต่หากสิ่งที่ล้มเหลวฉันได้สร้าง LogToFileger ซึ่งจะ LogToFile ทุกขั้นตอนของกระบวนการ
เช่นนี้
LogToFileToFile.LogToFile('[DatabaseInstallation] : [ACTION]:Postgres installation started');
ฟังก์ชั่นLogToFileToFile.LogToFile()
นี้จะเขียนเนื้อหาไปยังไฟล์ มันใช้งานได้ดี แต่ปัญหาก็คือมันทำให้โค้ดยุ่งเหยิงเพราะมันยากที่จะอ่านโค้ดเพราะคนคนหนึ่งเห็นการ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
นี้จะมีข้อความ LogToFile ทั้งหมดในswitch 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()
พบทุกที่