Si he entendido bien, lo que necesitas es capturar el evento OnException del programa y desde allí tratar todos los errores.
Puedes crear un procedure en tu Form principal, algo así
Código Delphi
[-]
private
procedure AlSaltarExcepcion(Sender: TObject; E: Exception);
public
Lo asignas al crear el Form, ejemplo:
Código Delphi
[-]
procedure TFmain.FormCreate(Sender: TObject);
begin
Application.OnException := AlSaltarExcepcion;
end;
En tu procedure haces lo que creas conveniente, ejemplo:
Código Delphi
[-]
procedure TFmain.AlSaltarExcepcion(Sender: TObject; E: Exception);
begin
GuardarError( E.Message );
end;
Y en GuardarError lo almacena en tu fichero log.
Código Delphi
[-]
procedure GuardarError( cMensajeError:string );
var
F : TextFile;
cF : string;
begin
cF := ExtractFilePath(Paramstr(0))+FormatDateTime('yyyymmdd',now)+_FILELOGERROR_;
AssignFile( F, cF );
if FileExists( cF ) then
Append( F )
else
ReWrite( F );
Writeln( F, '--> ' + FormatDateTime('dddd dd/mm/yyyy hh:nn:ss',Now) );
WriteLn( F, cMensajeError );
WriteLn( F, '' );
Flush( F );
CloseFile( F );
end;
En fin, es sólo un ejemplo simplón, para que te hagas una idea.
Espero que sea lo que buscas.