Estou trabalhando em um projeto no delphi e estou criando um instalador para o aplicativo, existem três partes principais.
- Instalação / desinstalação do PostgreSQL
- instalação / desinstalação do myapplication (a configuração do myapplication é criada usando o nsi).
- Criando tabelas no Postgres por meio de script (arquivos em lote).
Tudo corre bem e sem problemas, mas se algo falhar, eu criei um LogToFileger que irá LogToFile a cada passo do processo,
como este
LogToFileToFile.LogToFile('[DatabaseInstallation] : [ACTION]:Postgres installation started');
A função LogToFileToFile.LogToFile()
Isso gravará o conteúdo em um arquivo. Isso está funcionando bem, mas o problema é que isso atrapalhou o código, pois tornou-se difícil ler o código, pois só é possível ver a LogToFileToFile.LogToFile()
chamada de função em todo o código
um exemplo
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;
como você pode ver, há muitas LogToFileToFile.LogToFile()
chamadas
antes de
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)
este é o caso em todo o meu código agora.
é difícil de ler.
alguém pode me sugerir uma boa maneira de organizar as chamadas para o LogToFile?
gostar
Recuar a chamada 'LogToFileToFile.LogToFile () `
assimif 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;
Unidade separada como
LogToFileger
esta unidade terá todas as mensagens do LogToFile de formaswitch case
semelhante a estaFunction 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;
para que eu possa chamar o LogToFilegingMyMessage (1) sempre que necessário.
Alguém pode me dizer qual é uma abordagem melhor e mais limpa para o LogToFileging dessa maneira?
logBook.log()
é encontrado.