我正在delphi中工作一个项目,并且正在为该应用程序创建安装程序,主要包括三个部分。
- PostgreSQL安装/卸载
- myapplication(使用nsi创建myapplication的安装程序)安装/卸载。
- 通过脚本(批处理文件)在Postgres中创建表。
一切正常运行,但是如果出现故障,我创建了一个LogToFileger,它将在过程的每个步骤中记录LogToFile,
如下所示
LogToFileToFile.LogToFile('[DatabaseInstallation] : [ACTION]:Postgres installation started');
函数LogToFileToFile.LogToFile()
This将内容写入文件。这工作得很好,但是问题是这使代码混乱了,因为它变得很难读取代码,因为一个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
这个单位将在所有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()
。